@@ -0,0 +1,49 @@
|
||||
"""Колонка valid_until для skip-таблиц (диапазон дат).
|
||||
|
||||
Revision ID: daily_skip_valid_until
|
||||
Revises: daily_plan_part_skips
|
||||
Create Date: 2026-06-07
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
|
||||
|
||||
revision = "daily_skip_valid_until"
|
||||
down_revision = "daily_plan_part_skips"
|
||||
branch_labels = None
|
||||
depends_on = None
|
||||
|
||||
_TABLES = ("daily_trip_skip", "daily_ingredient_skip", "daily_unloading_group_skip")
|
||||
|
||||
|
||||
def upgrade(**kw) -> None:
|
||||
if kw.get("tag") == "reports":
|
||||
return
|
||||
bind = op.get_bind()
|
||||
insp = sa.inspect(bind)
|
||||
for table in _TABLES:
|
||||
if table not in insp.get_table_names():
|
||||
continue
|
||||
cols = {c["name"] for c in insp.get_columns(table)}
|
||||
if "valid_until" not in cols:
|
||||
with op.batch_alter_table(table) as batch:
|
||||
batch.add_column(sa.Column("valid_until", sa.Date(), nullable=True))
|
||||
op.create_index(f"ix_{table}_valid_until", table, ["valid_until"], unique=False)
|
||||
|
||||
|
||||
def downgrade(**kw) -> None:
|
||||
if kw.get("tag") == "reports":
|
||||
return
|
||||
bind = op.get_bind()
|
||||
insp = sa.inspect(bind)
|
||||
for table in _TABLES:
|
||||
if table not in insp.get_table_names():
|
||||
continue
|
||||
cols = {c["name"] for c in insp.get_columns(table)}
|
||||
if "valid_until" in cols:
|
||||
op.drop_index(f"ix_{table}_valid_until", table_name=table)
|
||||
with op.batch_alter_table(table) as batch:
|
||||
batch.drop_column("valid_until")
|
||||
Reference in New Issue
Block a user