generated from coulomb/repo-seed
49 lines
1.1 KiB
Python
49 lines
1.1 KiB
Python
"""normalize workstream lifecycle states
|
|
|
|
Revision ID: u8p9q0r1s2t3
|
|
Revises: t7o8p9q0r1s2
|
|
Create Date: 2026-05-17
|
|
|
|
"""
|
|
from alembic import op
|
|
|
|
revision = "u8p9q0r1s2t3"
|
|
down_revision = "t7o8p9q0r1s2"
|
|
branch_labels = None
|
|
depends_on = None
|
|
|
|
|
|
def upgrade() -> None:
|
|
op.execute(
|
|
"""
|
|
UPDATE workstreams
|
|
SET status = 'finished'
|
|
WHERE status IN ('completed', 'accepted', 'done')
|
|
"""
|
|
)
|
|
op.execute(
|
|
"""
|
|
UPDATE workstreams ws
|
|
SET status = 'active'
|
|
WHERE status = 'todo'
|
|
AND EXISTS (
|
|
SELECT 1
|
|
FROM tasks t
|
|
WHERE t.workstream_id = ws.id
|
|
AND t.status <> 'todo'
|
|
)
|
|
"""
|
|
)
|
|
op.execute(
|
|
"""
|
|
UPDATE workstreams
|
|
SET status = 'ready'
|
|
WHERE status = 'todo'
|
|
"""
|
|
)
|
|
|
|
|
|
def downgrade() -> None:
|
|
op.execute("UPDATE workstreams SET status = 'completed' WHERE status = 'finished'")
|
|
op.execute("UPDATE workstreams SET status = 'active' WHERE status IN ('proposed', 'ready', 'backlog')")
|