Files
redash/migrations/versions/73beceabb948_bring_back_null_schedule.py

58 lines
1.2 KiB
Python

"""bring_back_null_schedule
Revision ID: 73beceabb948
Revises: e7f8a917aa8e
Create Date: 2019-01-17 13:22:21.729334
"""
from alembic import op
import sqlalchemy as sa
from sqlalchemy.sql import table
from redash.models import MutableDict
# revision identifiers, used by Alembic.
revision = "73beceabb948"
down_revision = "e7f8a917aa8e"
branch_labels = None
depends_on = None
def is_empty_schedule(schedule):
if schedule is None:
return False
if schedule == {}:
return True
if (
schedule.get("interval") is None
and schedule.get("until") is None
and schedule.get("day_of_week") is None
and schedule.get("time") is None
):
return True
return False
def upgrade():
op.alter_column("queries", "schedule", nullable=True, server_default=None)
queries = table(
"queries",
sa.Column("id", sa.Integer, primary_key=True),
sa.Column("schedule", sa.Text()),
)
conn = op.get_bind()
for query in conn.execute(queries.select()):
if is_empty_schedule(query.schedule):
conn.execute(
queries.update().where(queries.c.id == query.id).values(schedule=None)
)
def downgrade():
pass