50 lines
1.9 KiB
Python
50 lines
1.9 KiB
Python
"""Add user_aircraft table for user-defined aircraft types
|
|
|
|
Revision ID: 004_user_aircraft
|
|
Revises: 003_public_booking
|
|
Create Date: 2026-03-23 12:00:00.000000
|
|
|
|
This migration adds a user_aircraft table to store aircraft types
|
|
that are manually entered by users when not found in the main aircraft database.
|
|
|
|
"""
|
|
from alembic import op
|
|
import sqlalchemy as sa
|
|
|
|
# revision identifiers, used by Alembic.
|
|
revision = '004_user_aircraft'
|
|
down_revision = '003_public_booking'
|
|
branch_labels = None
|
|
depends_on = None
|
|
|
|
|
|
def upgrade() -> None:
|
|
"""
|
|
Create user_aircraft table for storing user-defined aircraft types.
|
|
"""
|
|
op.create_table('user_aircraft',
|
|
sa.Column('id', sa.Integer(), nullable=False),
|
|
sa.Column('registration', sa.String(length=25), nullable=False),
|
|
sa.Column('type_code', sa.String(length=30), nullable=False),
|
|
sa.Column('clean_reg', sa.String(length=25), nullable=False),
|
|
sa.Column('created_by', sa.String(length=16), nullable=False),
|
|
sa.Column('created_at', sa.DateTime(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=False),
|
|
sa.Column('updated_at', sa.DateTime(), server_default=sa.text('CURRENT_TIMESTAMP'), onupdate=sa.text('CURRENT_TIMESTAMP'), nullable=False),
|
|
sa.PrimaryKeyConstraint('id'),
|
|
sa.UniqueConstraint('registration')
|
|
)
|
|
|
|
# Create indexes
|
|
op.create_index('idx_user_aircraft_registration', 'user_aircraft', ['registration'])
|
|
op.create_index('idx_user_aircraft_clean_reg', 'user_aircraft', ['clean_reg'])
|
|
op.create_index('idx_user_aircraft_created_by', 'user_aircraft', ['created_by'])
|
|
|
|
|
|
def downgrade() -> None:
|
|
"""
|
|
Drop user_aircraft table.
|
|
"""
|
|
op.drop_index('idx_user_aircraft_created_by', table_name='user_aircraft')
|
|
op.drop_index('idx_user_aircraft_clean_reg', table_name='user_aircraft')
|
|
op.drop_index('idx_user_aircraft_registration', table_name='user_aircraft')
|
|
op.drop_table('user_aircraft') |