DFiP_Budget_planing/api/alembic/versions/0044_export_jobs.py

36 lines
1.0 KiB
Python

from alembic import op
revision = "0044"
down_revision = "0043"
branch_labels = None
depends_on = None
def upgrade():
op.execute("""
CREATE TABLE v3.export_job (
id uuid PRIMARY KEY,
user_id integer NOT NULL REFERENCES v3.app_user(id),
request jsonb NOT NULL,
status varchar(20) NOT NULL,
created_at timestamptz NOT NULL,
started_at timestamptz,
finished_at timestamptz,
filename text,
media_type text,
file_path text,
error text,
CONSTRAINT export_job_status CHECK
(status IN ('queued', 'processing', 'completed', 'failed'))
)
""")
op.execute("CREATE INDEX export_job_user ON v3.export_job(user_id, created_at)")
op.execute("""
CREATE UNIQUE INDEX export_job_active_user ON v3.export_job(user_id)
WHERE status IN ('queued', 'processing')
""")
def downgrade():
op.execute("DROP TABLE v3.export_job")