aboutsummaryrefslogtreecommitdiffstats
path: root/packages/pipeline/migrations/1543434472116-TokenOrderbookSnapshots.ts
blob: a7117c7535cef5b1ebb10f3797e7b06737f9a567 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import { MigrationInterface, QueryRunner, Table } from 'typeorm';

const tokenOrderbookSnapshots = new Table({
    name: 'raw.token_orderbook_snapshots',
    columns: [
        { name: 'observed_timestamp', type: 'bigint', isPrimary: true },
        { name: 'source', type: 'varchar', isPrimary: true },
        { name: 'order_type', type: 'order_t' },
        { name: 'price', type: 'numeric', isPrimary: true },

        { name: 'base_asset_symbol', type: 'varchar', isPrimary: true },
        { name: 'base_asset_address', type: 'char(42)' },
        { name: 'base_volume', type: 'numeric' },

        { name: 'quote_asset_symbol', type: 'varchar', isPrimary: true },
        { name: 'quote_asset_address', type: 'char(42)' },
        { name: 'quote_volume', type: 'numeric' },
    ],
});

export class TokenOrderbookSnapshots1543434472116 implements MigrationInterface {
    public async up(queryRunner: QueryRunner): Promise<any> {
        await queryRunner.query(`CREATE TYPE order_t AS enum('bid', 'ask');`);
        await queryRunner.createTable(tokenOrderbookSnapshots);
    }

    public async down(queryRunner: QueryRunner): Promise<any> {
        await queryRunner.dropTable(tokenOrderbookSnapshots.name);
    }
}