Files
bracket/backend/alembic/env.py
Erik Vroon c8cab54286 Add pyrefly type checking (#1434)
Prefly is much faster than mypy and a bit stricter
Mypy will also still be checked on CI for now
2025-11-14 10:47:23 +00:00

49 lines
1.4 KiB
Python

import logging
import os
import sys
# ruff: noqa: E402 We first need to insert the path
from sqlalchemy import engine_from_config, pool
from alembic import context
parent_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.insert(0, parent_dir)
from bracket.config import config
from bracket.schema import Base
ALEMBIC_CONFIG = context.config
logger = logging.getLogger("alembic")
def run_migrations_offline() -> None:
url = ALEMBIC_CONFIG.get_main_option("sqlalchemy.url")
context.configure(url=url, target_metadata=Base.metadata, compare_type=True)
with context.begin_transaction():
context.run_migrations()
def run_migrations_online() -> None:
config_ini_section = ALEMBIC_CONFIG.get_section(ALEMBIC_CONFIG.config_ini_section)
assert config_ini_section is not None, "No section 'alembic' found in config.ini"
config_ini_section["sqlalchemy.url"] = str(config.pg_dsn)
engine = engine_from_config(config_ini_section, prefix="sqlalchemy.", poolclass=pool.NullPool)
connection = engine.connect()
context.configure(connection=connection, target_metadata=Base.metadata, compare_type=True)
try:
with context.begin_transaction():
context.run_migrations()
finally:
connection.close()
if context.is_offline_mode():
run_migrations_offline()
else:
run_migrations_online()