feat(migration): Restore sequence_number in workflow_runs

Signed-off-by: -LAN- <laipz8200@outlook.com>
pull/21228/head
-LAN- 11 months ago
parent e61cca5f88
commit 57bff7820f
No known key found for this signature in database
GPG Key ID: 6BA0D108DED011FF

@ -28,8 +28,29 @@ def upgrade():
def downgrade(): def downgrade():
# ### commands auto generated by Alembic - please adjust! ### # ### commands auto generated by Alembic - please adjust! ###
# Step 1: Add sequence_number column as nullable first
with op.batch_alter_table('workflow_runs', schema=None) as batch_op:
batch_op.add_column(sa.Column('sequence_number', sa.INTEGER(), autoincrement=False, nullable=True))
# Step 2: Populate sequence_number values based on created_at order within each app
# This recreates the original sequence numbering logic
connection = op.get_bind()
connection.execute(sa.text("""
UPDATE workflow_runs
SET sequence_number = (
SELECT ROW_NUMBER() OVER (
PARTITION BY tenant_id, app_id
ORDER BY created_at, id
)
FROM workflow_runs wr2
WHERE wr2.id = workflow_runs.id
)
"""))
# Step 3: Make the column NOT NULL and add the index
with op.batch_alter_table('workflow_runs', schema=None) as batch_op: with op.batch_alter_table('workflow_runs', schema=None) as batch_op:
batch_op.add_column(sa.Column('sequence_number', sa.INTEGER(), autoincrement=False, nullable=False)) batch_op.alter_column('sequence_number', nullable=False)
batch_op.create_index(batch_op.f('workflow_run_tenant_app_sequence_idx'), ['tenant_id', 'app_id', 'sequence_number'], unique=False) batch_op.create_index(batch_op.f('workflow_run_tenant_app_sequence_idx'), ['tenant_id', 'app_id', 'sequence_number'], unique=False)
# ### end Alembic commands ### # ### end Alembic commands ###

Loading…
Cancel
Save