ogn-python/migrations/versions/5413cb96c44d_statistics_ref...

130 wiersze
7.5 KiB
Python

"""Statistics Refactoring
Revision ID: 5413cb96c44d
Revises: 2ab0bbb8b49d
Create Date: 2020-12-13 13:13:26.242853
"""
from alembic import op
import sqlalchemy as sa
# revision identifiers, used by Alembic.
revision = '5413cb96c44d'
down_revision = '2ab0bbb8b49d'
branch_labels = None
depends_on = None
def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.add_column('coverage_statistics', sa.Column('max_signal_quality', sa.Float(precision=2), nullable=True))
op.add_column('coverage_statistics', sa.Column('min_altitude', sa.Float(precision=2), nullable=True))
op.add_column('coverage_statistics', sa.Column('max_altitude', sa.Float(precision=2), nullable=True))
op.create_table('sender_coverage_statistics',
sa.Column('id', sa.Integer(), nullable=False),
sa.Column('date', sa.Date(), nullable=True),
sa.Column('location_mgrs_short', sa.String(length=9), nullable=True),
sa.Column('is_trustworthy', sa.Boolean(), nullable=True),
sa.Column('messages_count', sa.Integer(), nullable=True),
sa.Column('max_distance', sa.Float(precision=2), nullable=True),
sa.Column('max_normalized_quality', sa.Float(precision=2), nullable=True),
sa.Column('max_signal_quality', sa.Float(precision=2), nullable=True),
sa.Column('min_altitude', sa.Float(precision=2), nullable=True),
sa.Column('max_altitude', sa.Float(precision=2), nullable=True),
sa.Column('receivers_count', sa.Integer(), nullable=True),
sa.Column('sender_id', sa.Integer(), nullable=True),
sa.ForeignKeyConstraint(['sender_id'], ['senders.id'], ondelete='CASCADE'),
sa.PrimaryKeyConstraint('id')
)
op.create_index('idx_sender_coverage_statistics_uc', 'sender_coverage_statistics', ['date', 'sender_id', 'location_mgrs_short', 'is_trustworthy'], unique=True)
op.create_index(op.f('ix_sender_coverage_statistics_sender_id'), 'sender_coverage_statistics', ['sender_id'], unique=False)
op.create_table('receiver_coverage_statistics',
sa.Column('id', sa.Integer(), nullable=False),
sa.Column('date', sa.Date(), nullable=True),
sa.Column('location_mgrs_short', sa.String(length=9), nullable=True),
sa.Column('is_trustworthy', sa.Boolean(), nullable=True),
sa.Column('messages_count', sa.Integer(), nullable=True),
sa.Column('max_distance', sa.Float(precision=2), nullable=True),
sa.Column('max_normalized_quality', sa.Float(precision=2), nullable=True),
sa.Column('max_signal_quality', sa.Float(precision=2), nullable=True),
sa.Column('min_altitude', sa.Float(precision=2), nullable=True),
sa.Column('max_altitude', sa.Float(precision=2), nullable=True),
sa.Column('senders_count', sa.Integer(), nullable=True),
sa.Column('receiver_id', sa.Integer(), nullable=True),
sa.ForeignKeyConstraint(['receiver_id'], ['receivers.id'], ondelete='CASCADE'),
sa.PrimaryKeyConstraint('id')
)
op.create_index('idx_receiver_coverage_statistics_uc', 'receiver_coverage_statistics', ['date', 'receiver_id', 'location_mgrs_short', 'is_trustworthy'], unique=True)
op.create_index(op.f('ix_receiver_coverage_statistics_receiver_id'), 'receiver_coverage_statistics', ['receiver_id'], unique=False)
op.create_table('aggregate_coverage_statistics',
sa.Column('id', sa.Integer(), nullable=False),
sa.Column('date', sa.Date(), nullable=True),
sa.Column('location_mgrs_short', sa.String(length=9), nullable=True),
sa.Column('is_trustworthy', sa.Boolean(), nullable=True),
sa.Column('messages_count', sa.Integer(), nullable=True),
sa.Column('max_distance', sa.Float(precision=2), nullable=True),
sa.Column('max_normalized_quality', sa.Float(precision=2), nullable=True),
sa.Column('max_signal_quality', sa.Float(precision=2), nullable=True),
sa.Column('min_altitude', sa.Float(precision=2), nullable=True),
sa.Column('max_altitude', sa.Float(precision=2), nullable=True),
sa.Column('senders_count', sa.Integer(), nullable=True),
sa.Column('receivers_count', sa.Integer(), nullable=True),
sa.PrimaryKeyConstraint('id')
)
op.create_index('idx_aggregate_coverage_statistics_uc', 'aggregate_coverage_statistics', ['date', 'location_mgrs_short', 'is_trustworthy'], unique=True)
op.drop_index('idx_relation_statistics_uc', table_name='relation_statistics')
op.drop_index('ix_relation_statistics_receiver_id', table_name='relation_statistics')
op.drop_index('ix_relation_statistics_sender_id', table_name='relation_statistics')
op.drop_table('relation_statistics')
op.rename_table('sender_direction_statistics', 'direction_statistics')
op.drop_index('idx_sender_direction_statistics_uc')
op.create_index('idx_direction_statistics_uc', 'direction_statistics', ['sender_id', 'receiver_id'], unique=True)
# ### end Alembic commands ###
def downgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.rename_table('direction_statistics', 'sender_direction_statistics')
op.drop_index('idx_direction_statistics_uc')
op.create_index('idx_sender_direction_statistics_uc', 'sender_direction_statistics', ['sender_id', 'receiver_id'], unique=True)
op.create_table('relation_statistics',
sa.Column('id', sa.INTEGER(), autoincrement=True, nullable=False),
sa.Column('date', sa.DATE(), autoincrement=False, nullable=True),
sa.Column('is_trustworthy', sa.BOOLEAN(), autoincrement=False, nullable=True),
sa.Column('messages_count', sa.INTEGER(), autoincrement=False, nullable=True),
sa.Column('max_distance', sa.REAL(), autoincrement=False, nullable=True),
sa.Column('max_normalized_quality', sa.REAL(), autoincrement=False, nullable=True),
sa.Column('sender_id', sa.INTEGER(), autoincrement=False, nullable=True),
sa.Column('receiver_id', sa.INTEGER(), autoincrement=False, nullable=True),
sa.Column('coverages_count', sa.INTEGER(), autoincrement=False, nullable=True),
sa.ForeignKeyConstraint(['receiver_id'], ['receivers.id'], name='relation_statistics_receiver_id_fkey', ondelete='CASCADE'),
sa.ForeignKeyConstraint(['sender_id'], ['senders.id'], name='relation_statistics_sender_id_fkey', ondelete='CASCADE'),
sa.PrimaryKeyConstraint('id', name='relation_statistics_pkey')
)
op.create_index('ix_relation_statistics_sender_id', 'relation_statistics', ['sender_id'], unique=False)
op.create_index('ix_relation_statistics_receiver_id', 'relation_statistics', ['receiver_id'], unique=False)
op.create_index('idx_relation_statistics_uc', 'relation_statistics', ['date', 'sender_id', 'receiver_id', 'is_trustworthy'], unique=True)
op.drop_index('idx_aggregate_coverage_statistics_uc', table_name='aggregate_coverage_statistics')
op.drop_table('aggregate_coverage_statistics')
op.drop_index(op.f('ix_receiver_coverage_statistics_receiver_id'), table_name='receiver_coverage_statistics')
op.drop_index('idx_receiver_coverage_statistics_uc', table_name='receiver_coverage_statistics')
op.drop_table('receiver_coverage_statistics')
op.drop_index(op.f('ix_sender_coverage_statistics_sender_id'), table_name='sender_coverage_statistics')
op.drop_index('idx_sender_coverage_statistics_uc', table_name='sender_coverage_statistics')
op.drop_table('sender_coverage_statistics')
op.drop_column('coverage_statistics', 'max_altitude')
op.drop_column('coverage_statistics', 'min_altitude')
op.drop_column('coverage_statistics', 'max_signal_quality')
# ### end Alembic commands ###