Update schema for sra_orders

This commit is contained in:
Alex Browne
2018-11-13 14:57:58 -08:00
parent 96134003e1
commit 2cbb82eb04
2 changed files with 49 additions and 6 deletions

View File

@@ -0,0 +1,48 @@
import { MigrationInterface, QueryRunner, Table } from 'typeorm';
export class NewSraOrderTimestampFormat1542147915364 implements MigrationInterface {
public async up(queryRunner: QueryRunner): Promise<any> {
await queryRunner.query(
`ALTER TABLE raw.sra_orders
DROP CONSTRAINT "PK_09bfb9980715329563bd53d667e",
ADD PRIMARY KEY (order_hash_hex, exchange_address, source_url);
`,
);
await queryRunner.query(
`CREATE TABLE raw.sra_orders_observed_timestamps (
order_hash_hex varchar NOT NULL,
exchange_address varchar NOT NULL,
source_url varchar NOT NULL,
observed_timestamp bigint NOT NULL,
FOREIGN KEY
(order_hash_hex, exchange_address, source_url)
REFERENCES raw.sra_orders (order_hash_hex, exchange_address, source_url),
PRIMARY KEY (order_hash_hex, exchange_address, source_url, observed_timestamp)
);`,
);
await queryRunner.query(
`ALTER TABLE raw.sra_orders
DROP COLUMN last_updated_timestamp,
DROP COLUMN first_seen_timestamp;`,
);
}
public async down(queryRunner: QueryRunner): Promise<any> {
await queryRunner.dropTable('raw.sra_orders_observed_timestamps');
await queryRunner.query(
`ALTER TABLE raw.sra_orders
ADD COLUMN last_updated_timestamp bigint NOT NULL DEFAULT 0,
ADD COLUMN first_seen_timestamp bigint NOT NULL DEFAULT 0;`,
);
await queryRunner.query(
`ALTER TABLE raw.sra_orders
DROP CONSTRAINT sra_orders_pkey,
ADD CONSTRAINT "PK_09bfb9980715329563bd53d667e" PRIMARY KEY ("exchange_address", "order_hash_hex");
`,
);
}
}

View File

@@ -8,13 +8,8 @@ export class SraOrder {
public exchangeAddress!: string;
@PrimaryColumn({ name: 'order_hash_hex' })
public orderHashHex!: string;
@Column({ name: 'source_url' })
@PrimaryColumn({ name: 'source_url' })
public sourceUrl!: string;
@Column({ name: 'last_updated_timestamp' })
public lastUpdatedTimestamp!: number;
@Column({ name: 'first_seen_timestamp' })
public firstSeenTimestamp!: number;
@Column({ name: 'maker_address' })
public makerAddress!: string;