API-KA — plateforme centrale : collecte quotidienne des 8 services KA, historisation append-only et API publique sur www.api-ka.com
Python 60.9%
HTML 21%
TypeScript 7.3%
JavaScript 5.2%
CSS 4.8%
Shell 0.8%
1# ============================================2# Projet : API-KA3# Fichier : src/database/migrations/env.py4# Node : m3u96b5# Author : Simon-Pierre Boucher6# Contact : contact@spboucher.ai7# Date : 2026-08-168# ============================================9"""Environnement Alembic : migrations du schéma API-KA (PostgreSQL sur m3u96b)."""1011from __future__ import annotations1213from logging.config import fileConfig1415from alembic import context16from sqlalchemy import engine_from_config, pool1718from src.config import get_settings19from src.database.models import Base2021config = context.config2223if config.config_file_name is not None:24 fileConfig(config.config_file_name)2526config.set_main_option("sqlalchemy.url", get_settings().database_url)2728target_metadata = Base.metadata293031def run_migrations_offline() -> None:32 """Exécute les migrations en mode 'offline' (génération SQL sans connexion)."""33 context.configure(34 url=config.get_main_option("sqlalchemy.url"),35 target_metadata=target_metadata,36 literal_binds=True,37 dialect_opts={"paramstyle": "named"},38 )39 with context.begin_transaction():40 context.run_migrations()414243def run_migrations_online() -> None:44 """Exécute les migrations en mode 'online' (connexion directe à la base)."""45 connectable = engine_from_config(46 config.get_section(config.config_ini_section, {}),47 prefix="sqlalchemy.",48 poolclass=pool.NullPool,49 )50 with connectable.connect() as connection:51 context.configure(connection=connection, target_metadata=target_metadata)52 with context.begin_transaction():53 context.run_migrations()545556if context.is_offline_mode():57 run_migrations_offline()58else:59 run_migrations_online()60