pharmaspine-backend / database /alembic /versions /20260521_1000_repo_baseline.py
ashish1265659565's picture
Upload folder using huggingface_hub
08fd094 verified
Raw
History Blame
2.03 kB
"""repo baseline schema
Revision ID: 20260521_1000
Revises:
Create Date: 2026-05-21 16:20:00
"""
from __future__ import annotations
from pathlib import Path
import sys
from alembic import op
REPO_ROOT = Path(__file__).resolve().parents[3]
if str(REPO_ROOT) not in sys.path:
sys.path.insert(0, str(REPO_ROOT))
from database.schema_manifest import iter_baseline_paths
revision = "20260521_1000"
down_revision = None
branch_labels = None
depends_on = None
def _execute_sql_file(path: Path) -> None:
sql_text = path.read_text(encoding="utf-8")
statements = [statement.strip() for statement in sql_text.split(";") if statement.strip()]
for statement in statements:
op.execute(statement)
def upgrade() -> None:
for path in iter_baseline_paths():
_execute_sql_file(path)
def downgrade() -> None:
# Reverse-order teardown mirrors the baseline create order.
drop_statements = [
"DROP VIEW IF EXISTS latest_evidence_assessments",
"DROP TABLE IF EXISTS chunk_embeddings",
"DROP TABLE IF EXISTS claim_relationships",
"DROP TABLE IF EXISTS molecule_disease_links",
"DROP TABLE IF EXISTS claim_risk_links",
"DROP TABLE IF EXISTS claim_endpoint_links",
"DROP TABLE IF EXISTS claim_study_links",
"DROP TABLE IF EXISTS evidence_assessments",
"DROP TABLE IF EXISTS claim_evidence_links",
"DROP TABLE IF EXISTS claims",
"DROP TABLE IF EXISTS chunks",
"DROP TABLE IF EXISTS safety_risks",
"DROP TABLE IF EXISTS endpoints",
"DROP TABLE IF EXISTS studies",
"DROP TABLE IF EXISTS geographies",
"DROP TABLE IF EXISTS populations",
"DROP TABLE IF EXISTS molecules",
"DROP TABLE IF EXISTS diseases",
"ALTER TABLE sources DROP CONSTRAINT IF EXISTS fk_sources_current_version_id",
"DROP TABLE IF EXISTS source_versions",
"DROP TABLE IF EXISTS sources",
]
for statement in drop_statements:
op.execute(statement)