Skip to content

Commit b9409e3

Browse files
authored
Merge pull request #35 from rendiffdev/db/add-job-progress-migration
Add database migration for job progress columns
2 parents 3ac8732 + 4872ab8 commit b9409e3

1 file changed

Lines changed: 44 additions & 0 deletions

File tree

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
"""Add job progress tracking columns
2+
3+
Revision ID: 004
4+
Revises: 003
5+
Create Date: 2025-01-15
6+
7+
"""
8+
from typing import Sequence, Union
9+
10+
from alembic import op
11+
import sqlalchemy as sa
12+
13+
14+
# revision identifiers, used by Alembic.
15+
revision: str = '004'
16+
down_revision: Union[str, None] = '003'
17+
branch_labels: Union[str, Sequence[str], None] = None
18+
depends_on: Union[str, Sequence[str], None] = None
19+
20+
21+
def upgrade() -> None:
22+
"""Add new progress tracking columns to jobs table."""
23+
# Add current_stage column (alias for stage compatibility)
24+
op.add_column('jobs', sa.Column('current_stage', sa.String(), nullable=True, server_default='queued'))
25+
26+
# Add status_message column for progress messages
27+
op.add_column('jobs', sa.Column('status_message', sa.String(), nullable=True))
28+
29+
# Add updated_at column for tracking last update
30+
op.add_column('jobs', sa.Column('updated_at', sa.DateTime(), nullable=True))
31+
32+
# Add processing_stats column for detailed stats (JSON)
33+
op.add_column('jobs', sa.Column('processing_stats', sa.JSON(), nullable=True))
34+
35+
# Sync current_stage with existing stage values
36+
op.execute("UPDATE jobs SET current_stage = stage WHERE current_stage IS NULL")
37+
38+
39+
def downgrade() -> None:
40+
"""Remove progress tracking columns from jobs table."""
41+
op.drop_column('jobs', 'processing_stats')
42+
op.drop_column('jobs', 'updated_at')
43+
op.drop_column('jobs', 'status_message')
44+
op.drop_column('jobs', 'current_stage')

0 commit comments

Comments
 (0)