35 lines
1.3 KiB
Python
35 lines
1.3 KiB
Python
from typing import Sequence, Union
|
|
|
|
import sqlalchemy as sa
|
|
from alembic import op
|
|
|
|
revision: str = "006_runtime_storage"
|
|
down_revision: Union[str, None] = "005_add_details_fetched_at"
|
|
branch_labels: Union[str, Sequence[str], None] = None
|
|
depends_on: Union[str, Sequence[str], None] = None
|
|
|
|
|
|
def upgrade() -> None:
|
|
op.execute(
|
|
'CREATE INDEX IF NOT EXISTS "ix_MOBILEDE_cars_active_last_seen_mobile_de" '
|
|
'ON "MOBILEDE_cars" (last_seen_at) '
|
|
"WHERE is_sold = FALSE AND origin_id LIKE 'mobile.de:%'"
|
|
)
|
|
op.add_column("MOBILEDE_cars", sa.Column("gallery_fetched_at", sa.DateTime(timezone=True), nullable=True))
|
|
op.create_index("ix_MOBILEDE_cars_gallery_fetched_at", "MOBILEDE_cars", ["gallery_fetched_at"])
|
|
op.execute(
|
|
'''
|
|
UPDATE "MOBILEDE_cars" AS car
|
|
SET gallery_fetched_at = car.details_fetched_at
|
|
WHERE car.details_fetched_at IS NOT NULL
|
|
AND EXISTS (
|
|
SELECT 1 FROM "MOBILEDE_images" AS image WHERE image.car_id = car.id
|
|
)
|
|
'''
|
|
)
|
|
|
|
|
|
def downgrade() -> None:
|
|
op.drop_index("ix_MOBILEDE_cars_gallery_fetched_at", table_name="MOBILEDE_cars")
|
|
op.drop_column("MOBILEDE_cars", "gallery_fetched_at")
|
|
op.execute('DROP INDEX IF EXISTS "ix_MOBILEDE_cars_active_last_seen_mobile_de"') |