32 lines
1.2 KiB
Python
32 lines
1.2 KiB
Python
from typing import Sequence, Union
|
|
|
|
import sqlalchemy as sa
|
|
from alembic import op
|
|
|
|
revision: str = "005_add_car_seen_sold_timestamps"
|
|
down_revision: Union[str, None] = "004_add_ingestion_tables"
|
|
branch_labels: Union[str, Sequence[str], None] = None
|
|
depends_on: Union[str, Sequence[str], None] = None
|
|
|
|
|
|
def upgrade() -> None:
|
|
op.add_column(
|
|
"MOBILEDE_cars",
|
|
sa.Column("first_seen_at", sa.DateTime(timezone=True), nullable=True),
|
|
)
|
|
op.add_column(
|
|
"MOBILEDE_cars",
|
|
sa.Column("sold_at", sa.DateTime(timezone=True), nullable=True),
|
|
)
|
|
op.execute('UPDATE "MOBILEDE_cars" SET first_seen_at = last_seen_at WHERE first_seen_at IS NULL')
|
|
op.alter_column("MOBILEDE_cars", "first_seen_at", nullable=False)
|
|
op.create_index("ix_MOBILEDE_cars_first_seen_at", "MOBILEDE_cars", ["first_seen_at"])
|
|
op.create_index("ix_MOBILEDE_cars_sold_at", "MOBILEDE_cars", ["sold_at"])
|
|
|
|
|
|
def downgrade() -> None:
|
|
op.drop_index("ix_MOBILEDE_cars_sold_at", table_name="MOBILEDE_cars")
|
|
op.drop_index("ix_MOBILEDE_cars_first_seen_at", table_name="MOBILEDE_cars")
|
|
op.drop_column("MOBILEDE_cars", "sold_at")
|
|
op.drop_column("MOBILEDE_cars", "first_seen_at")
|