""" initial schema Revision ID: db62e7db828d Revises: Create Date: 2023-09-28 23:04:41.020644 """ from typing import Sequence, Union from alembic import op import sqlalchemy as sa import dexorder.database import dexorder.database.column_types from sqlalchemy.dialects import postgresql # revision identifiers, used by Alembic. revision: str = 'db62e7db828d' down_revision: Union[str, None] = None branch_labels: Union[str, Sequence[str], None] = None depends_on: Union[str, Sequence[str], None] = None def upgrade() -> None: op.create_table('block', sa.Column('chain', sa.Integer(), nullable=False), sa.Column('height', sa.Integer(), nullable=False), sa.Column('hash', sa.LargeBinary(), nullable=False), sa.Column('parent', sa.LargeBinary(), nullable=False), sa.Column('data', postgresql.JSONB(astext_type=sa.Text()), nullable=False), sa.PrimaryKeyConstraint('chain', 'height', 'hash') ) op.create_table('keyvalue', sa.Column('key', sa.String(), nullable=False), sa.Column('value', postgresql.JSONB(astext_type=sa.Text()), nullable=True), sa.PrimaryKeyConstraint('key') ) op.create_table('seriesdict', sa.Column('value', sa.String(), nullable=False), sa.Column('chain', sa.Integer(), nullable=False), sa.Column('series', sa.String(), nullable=False), sa.Column('key', sa.String(), nullable=False), sa.PrimaryKeyConstraint('chain', 'series', 'key') ) op.create_table('seriesset', sa.Column('chain', sa.Integer(), nullable=False), sa.Column('series', sa.String(), nullable=False), sa.Column('key', sa.String(), nullable=False), sa.PrimaryKeyConstraint('chain', 'series', 'key') ) op.create_table('transactionjob', sa.Column('id', sa.UUID(), nullable=False), sa.Column('chain', dexorder.database.column_types.Blockchain(), nullable=False), sa.Column('height', sa.Integer(), nullable=False), # sa.Column('state', sa.Enum(name='transactionjobstate'), nullable=False), sa.Column('state', sa.Enum('Requested', 'Signed', 'Sent', 'Mined', name='transactionjobstate'), nullable=False), sa.Column('request', dexorder.database.column_types.DataclassDictBase(astext_type=sa.Text()), nullable=False), sa.PrimaryKeyConstraint('id') ) op.create_index(op.f('ix_transactionjob_chain'), 'transactionjob', ['chain'], unique=False) op.create_index(op.f('ix_transactionjob_height'), 'transactionjob', ['height'], unique=False) op.create_index(op.f('ix_transactionjob_state'), 'transactionjob', ['state'], unique=False) op.create_table('tx', sa.Column('id', postgresql.BYTEA(), nullable=False), sa.Column('data', postgresql.BYTEA(), nullable=False), sa.Column('job_id', sa.UUID(), nullable=False), sa.Column('receipt', postgresql.JSONB(astext_type=sa.Text()), nullable=True), sa.ForeignKeyConstraint(['job_id'], ['transactionjob.id'], ), sa.PrimaryKeyConstraint('id') ) op.create_table('orderindex', sa.Column('chain', dexorder.database.column_types.Blockchain(), nullable=False), sa.Column('vault', sa.String(), nullable=False), sa.Column('order_index', sa.Integer(), nullable=False), sa.Column('state', sa.Enum('Open', 'Canceled', 'Filled', 'Expired', 'Underfunded', name='swaporderstate'), nullable=False), sa.PrimaryKeyConstraint('chain', 'vault', 'order_index') ) op.create_table('pool', sa.Column('chain', dexorder.database.column_types.Blockchain(), nullable=False), sa.Column('address', dexorder.database.column_types.Address(), nullable=False), sa.Column('exchange', sa.Enum('UniswapV2', 'UniswapV3', name='exchange'), nullable=False), sa.Column('base', dexorder.database.column_types.Address(), nullable=False), sa.Column('quote', dexorder.database.column_types.Address(), nullable=False), sa.Column('fee', sa.Integer(), nullable=False), sa.PrimaryKeyConstraint('chain', 'address') ) def downgrade() -> None: op.drop_table('pool') op.drop_table('orderindex') op.drop_table('seriesset') op.drop_table('seriesdict') op.drop_table('keyvalue') op.drop_table('block') op.drop_table('tx') op.drop_table('transactionjob') op.execute('drop type swaporderstate') # enum type op.execute('drop type transactionjobstate') # enum type