36 lines
1.0 KiB
Python
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")
|