diff options
author | fragosti <francesco.agosti93@gmail.com> | 2019-01-31 02:06:04 +0800 |
---|---|---|
committer | fragosti <francesco.agosti93@gmail.com> | 2019-01-31 02:06:04 +0800 |
commit | 5ad2e9d6b6b1ff7c5327975501e8c042a5817ab9 (patch) | |
tree | ff7980354030d0e7ee036b0b5c8d27427474e40a | |
parent | 8bac655dc1c0e9a133492fe816c67f2c08b3e46b (diff) | |
download | dexon-0x-contracts-5ad2e9d6b6b1ff7c5327975501e8c042a5817ab9.tar dexon-0x-contracts-5ad2e9d6b6b1ff7c5327975501e8c042a5817ab9.tar.gz dexon-0x-contracts-5ad2e9d6b6b1ff7c5327975501e8c042a5817ab9.tar.bz2 dexon-0x-contracts-5ad2e9d6b6b1ff7c5327975501e8c042a5817ab9.tar.lz dexon-0x-contracts-5ad2e9d6b6b1ff7c5327975501e8c042a5817ab9.tar.xz dexon-0x-contracts-5ad2e9d6b6b1ff7c5327975501e8c042a5817ab9.tar.zst dexon-0x-contracts-5ad2e9d6b6b1ff7c5327975501e8c042a5817ab9.zip |
write migration to add trade_index primary key to dex_trades
-rw-r--r-- | packages/pipeline/migrations/1548809952793-AllowDuplicateTxHashesInDexTrades.ts | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/packages/pipeline/migrations/1548809952793-AllowDuplicateTxHashesInDexTrades.ts b/packages/pipeline/migrations/1548809952793-AllowDuplicateTxHashesInDexTrades.ts new file mode 100644 index 000000000..1b396918e --- /dev/null +++ b/packages/pipeline/migrations/1548809952793-AllowDuplicateTxHashesInDexTrades.ts @@ -0,0 +1,27 @@ +import { MigrationInterface, QueryRunner, TableColumn } from 'typeorm'; + +const DEX_TRADES_TABLE_NAME = 'raw.dex_trades'; + +export class AllowDuplicateTxHashesInDexTrades1548809952793 implements MigrationInterface { + public async up(queryRunner: QueryRunner): Promise<any> { + const dexTradesTable = await queryRunner.getTable(DEX_TRADES_TABLE_NAME); + if (dexTradesTable) { + // Composite key goes from (source_url, tx_hash) to (trade_index, source_url, tx_hash) + await queryRunner.addColumn( + DEX_TRADES_TABLE_NAME, + new TableColumn({ + name: 'trade_index', + type: 'varchar', + isPrimary: true, + }), + ); + } + } + + public async down(queryRunner: QueryRunner): Promise<any> { + const dexTradesTable = await queryRunner.getTable(DEX_TRADES_TABLE_NAME); + if (dexTradesTable) { + await queryRunner.dropColumn(dexTradesTable, 'trade_index'); + } + } +} |