diff --git a/migrations/versions/0014_preserve_task_due_times.py b/migrations/versions/0014_preserve_task_due_times.py new file mode 100644 index 0000000..c3a6a25 --- /dev/null +++ b/migrations/versions/0014_preserve_task_due_times.py @@ -0,0 +1,31 @@ +"""preserve time flags for existing task deadlines + +Revision ID: 0014_preserve_task_due_times +Revises: 0013_task_due_has_time +""" + +import sqlalchemy as sa +from alembic import op + +revision = "0014_preserve_task_due_times" +down_revision = "0013_task_due_has_time" +branch_labels = None +depends_on = None + + +def upgrade() -> None: + tasks = sa.table( + "tasks", + sa.column("due_at", sa.DateTime(timezone=True)), + sa.column("due_has_time", sa.Boolean()), + ) + op.execute( + tasks.update() + .where(tasks.c.due_at.is_not(None)) + .where(sa.extract("hour", tasks.c.due_at) != 23) + .values(due_has_time=True) + ) + + +def downgrade() -> None: + pass