Skip to content

Règles Database et Liquibase

Copy of sumaris-pod/.agents/rules/database-liquibase.md (rule written for AI coding agents, when creating or modifying Liquibase changelogs, database schemas, SQL scripts, or HSQLDB test data). Do not edit here: run npm run site:sync-rules to update it.

Liquibase

  • Auteur :Auteur de chaque changeset = email du développeur (ex. benoit.lavenier@e-is.pro).
  • Identifiants : Utiliser le format <timestamp_ms>-NNN (ex: 1707744000000-001).
  • Préconditions : Toujours vérifier l'absence d'une table avant sa création avec <preConditions onFail="MARK_RAN"><not><tableExists tableName="... "/></not></preConditions>.
  • Nomenclature :
    • Tables : snake_case (ex: my_table).
    • Clés étrangères : suffixe _fk (colonne) et _fkc (nom de la contrainte).
    • Séquences : suffixe _seq.
  • Compatibilité :
    • Crée une version du changelog pour chacun: HSQLDB, PostgreSQL, Oracle — avec les mêmes ids, si possible.

SQL / HSQLDB

  • Pour les tests unitaires, HSQLDB est utilisé. Veiller à utiliser une syntaxe SQL compatible ou spécifique si nécessaire.
  • Les fichiers de données de test sont des fichiers XML chargés par DBUnit dans sumaris-test-shared/src/main/resources.