"""任务队列 Procrastinate 的表(AR4)。放在 public schema:它的 SQL 函数里表名不带 schema。 任务状态的权威是业务表(parse_job 等);队列只负责派发(架构 §3.4)。这些表没有 tenant_id,不受行级安全策略约束。 升级 Procrastinate 时,按它的版本说明另加迁移(server/pyproject.toml 里锁定了大版本)。 Revision ID: 0003 """ from __future__ import annotations from alembic import op from procrastinate.schema import SchemaManager revision = "0003" down_revision = "0002" def upgrade() -> None: bind = op.get_bind() bind.exec_driver_sql("SET LOCAL search_path = public") bind.exec_driver_sql(SchemaManager.get_schema().replace("%", "%%")) bind.exec_driver_sql( "GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO bd_app;" "GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA public TO bd_app;" "GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA public TO bd_app;" "SET LOCAL search_path = app, public" ) def downgrade() -> None: raise NotImplementedError