Aller au contenu

Bases de données dans Forge

Forge laisse le choix du moteur de base de données.
Le cœur est agnostique (ADR-054) : il découvre le backend installé et n'en utilise qu'un seul par projet.
Vous installez le backend qui convient à votre projet comme un opt-in, et le code applicatif reste le même.

1. Le principe

Le cœur de Forge ne parle jamais directement à un moteur de base de données.
Il délègue la connexion, le dialecte SQL et le provisionnement à un backend, déclaré comme opt-in.

Un projet active un seul backend à la fois.
Les commandes forge db:init, forge db:apply et les migrations passent toutes par ce backend.

Un backend par projet

Les backends sont mutuellement exclusifs : installez-en un seul par projet.
Changer de moteur, c'est changer de backend, pas de code applicatif.

2. Les quatre backends

Backend Moteur Serveur requis Maturité Idéal pour
forge-mvc-sqlite SQLite Non (un fichier) RC démarrer, prototyper, tester
forge-mvc-mariadb MariaDB / MySQL Oui RC production de référence
forge-mvc-postgres PostgreSQL Oui RC production sur PostgreSQL
forge-mvc-mssql SQL Server Oui RC production sur SQL Server

Quatre backends au niveau plein

Les quatre backends sont au niveau plein (ADR-084, révision du 2026-07-19) : dialecte, provisioning db:init et intégration validés en continu contre de vrais serveurs.
MariaDB reste la référence historique de production ; SQLite reste le démarrage sans serveur.

3. SQLite, sans serveur

SQLite stocke toute la base dans un fichier (DB_NAME), sans serveur ni dépendance externe.
C'est le moyen le plus simple de démarrer et de tester un projet Forge.

pip install --pre forge-mvc-sqlite

Documentation : backend SQLite et sa progression pas à pas.

4. MariaDB, serveur de production

MariaDB est un backend de production pour Forge, au-dessus d'un serveur MariaDB, avec un pool de connexions.
forge db:init provisionne la base et le compte applicatif avec les identifiants d'administration (DB_ADMIN_*, ADR-033).

pip install --pre forge-mvc-mariadb

Documentation : backend MariaDB et sa progression pas à pas.
Pour installer le serveur et les comptes, voir aussi Préparer MariaDB.

5. PostgreSQL

PostgreSQL est un backend de niveau plein : dialecte, provisioning forge db:init (affiché par défaut, --run pour exécuter) et intégration validés en CI contre un vrai serveur.

pip install --pre forge-mvc-postgres

Documentation : backend PostgreSQL.

6. SQL Server

SQL Server est un backend de niveau plein, au même stade que PostgreSQL.
Il requiert un pilote ODBC système (« ODBC Driver 18 for SQL Server » par défaut).

pip install --pre forge-mvc-mssql

Documentation : backend SQL Server.

7. Comment choisir

Aide au choix

  • Vous débutez, prototypez ou testez : SQLite (aucun serveur).
  • Vous visez la production : MariaDB (client-serveur, éprouvé), la référence historique de Forge.
  • Vous avez une contrainte PostgreSQL ou SQL Server : les deux backends sont au niveau plein, choisissez celui de votre environnement.

Le passage d'un backend à l'autre se fait en changeant l'opt-in installé et la configuration de connexion ; le code applicatif (modèles, SQL, contrôleurs) ne change pas.

Voir aussi