• v7.6.0 f706424f90

    fix: A31 — transaction par migration + helper columns() (v7.6.0)
    FlowDeck CI / lint (push) Canceled after 0s
    FlowDeck CI / test (push) Canceled after 0s
    FlowDeck CI / docker (push) Canceled after 0s

    bruno released this 2026-10-01 10:13:23 -04:00 | 114 commits to main since this release

    • _apply_one() : BEGIN explicite → fn(conn) → marque schema_version →
      commit ; rollback complet à l'échec. Avant le DDL sortait en autocommit
      (isolation_level legacy) : un échec au milieu laissait un schéma partiel
      commité SANS ligne de version, et la reprise rejouait un DDL déjà appliqué.
      Si une transaction englobante subsiste (init_db commit juste avant), on la
      vide d'abord plutôt que de l'englober.
    • Helper unique columns(conn, table) (valide l'identifiant, ValueError sinon)
      25 copies de {r[1] for r in conn.execute("PRAGMA table_info(...)")}
      éliminées dans migrations.py (21 littéraux + 3 f-string + 1 variante row).
      table_exists/column_exists préconisés par l'audit NON livrés : aucune
      migration n'interroge sqlite_master, un contrôle unitaire se lit dans le set.
    • Smoke : DB fraîche → 28 migrations → version 29, ré-apply idempotent.

    tests : test_migration_transaction_rolls_back (DDL partiel annulé + zéro marque
    de version), test_columns_helper_validates_table_name

    suite 1036/1036 · ruff check app tests OK · OpenAPI 511 chemins / 7.6.0
    docs (ROADMAP/CHANGELOG/WORKLOAD/VERSION) à jour

    Downloads