56 lines
2.6 KiB
Python
56 lines
2.6 KiB
Python
"""add procrastinate schema
|
|
|
|
Revision ID: 0019
|
|
Revises: 0018
|
|
Create Date: 2026-05-23
|
|
"""
|
|
from typing import Sequence, Union
|
|
|
|
from alembic import op
|
|
|
|
revision: str = "0019"
|
|
down_revision: Union[str, None] = "0018"
|
|
branch_labels: Union[str, Sequence[str], None] = None
|
|
depends_on: Union[str, Sequence[str], None] = None
|
|
|
|
|
|
def upgrade() -> None:
|
|
from procrastinate.schema import SchemaManager
|
|
from app.config import settings
|
|
import psycopg
|
|
|
|
schema_sql = SchemaManager.get_schema()
|
|
# asyncpg (used by SQLAlchemy async) cannot execute multi-statement DDL via
|
|
# its prepare() path, so we open a direct psycopg connection instead.
|
|
with psycopg.connect(settings.procrastinate_database_url, autocommit=True) as conn:
|
|
conn.execute(schema_sql)
|
|
|
|
|
|
def downgrade() -> None:
|
|
op.execute("""
|
|
DROP TABLE IF EXISTS procrastinate_events CASCADE;
|
|
DROP TABLE IF EXISTS procrastinate_periodic_defers CASCADE;
|
|
DROP TABLE IF EXISTS procrastinate_jobs CASCADE;
|
|
DROP TABLE IF EXISTS procrastinate_workers CASCADE;
|
|
DROP FUNCTION IF EXISTS procrastinate_defer_jobs_v1 CASCADE;
|
|
DROP FUNCTION IF EXISTS procrastinate_defer_periodic_job_v2 CASCADE;
|
|
DROP FUNCTION IF EXISTS procrastinate_fetch_job_v2 CASCADE;
|
|
DROP FUNCTION IF EXISTS procrastinate_finish_job_v1 CASCADE;
|
|
DROP FUNCTION IF EXISTS procrastinate_cancel_job_v1 CASCADE;
|
|
DROP FUNCTION IF EXISTS procrastinate_retry_job_v1 CASCADE;
|
|
DROP FUNCTION IF EXISTS procrastinate_retry_job_v2 CASCADE;
|
|
DROP FUNCTION IF EXISTS procrastinate_notify_queue_job_inserted_v1 CASCADE;
|
|
DROP FUNCTION IF EXISTS procrastinate_notify_queue_abort_job_v1 CASCADE;
|
|
DROP FUNCTION IF EXISTS procrastinate_trigger_function_status_events_insert_v1 CASCADE;
|
|
DROP FUNCTION IF EXISTS procrastinate_trigger_function_status_events_update_v1 CASCADE;
|
|
DROP FUNCTION IF EXISTS procrastinate_trigger_function_scheduled_events_v1 CASCADE;
|
|
DROP FUNCTION IF EXISTS procrastinate_trigger_abort_requested_events_procedure_v1 CASCADE;
|
|
DROP FUNCTION IF EXISTS procrastinate_unlink_periodic_defers_v1 CASCADE;
|
|
DROP FUNCTION IF EXISTS procrastinate_register_worker_v1 CASCADE;
|
|
DROP FUNCTION IF EXISTS procrastinate_unregister_worker_v1 CASCADE;
|
|
DROP FUNCTION IF EXISTS procrastinate_update_heartbeat_v1 CASCADE;
|
|
DROP FUNCTION IF EXISTS procrastinate_prune_stalled_workers_v1 CASCADE;
|
|
DROP TYPE IF EXISTS procrastinate_job_to_defer_v1 CASCADE;
|
|
DROP TYPE IF EXISTS procrastinate_job_event_type CASCADE;
|
|
DROP TYPE IF EXISTS procrastinate_job_status CASCADE;
|
|
""")
|