Préparer MariaDB pour Forge¶
Cette page explique comment préparer MariaDB pour un projet Forge sur un poste de développement.
Elle complète l’installation de Forge sur Debian, Ubuntu et leurs dérivées.
Une fois MariaDB installé, Forge peut créer la base du projet, préparer les comptes nécessaires et appliquer les migrations SQL.
Objectif¶
À la fin de cette étape, le poste doit disposer :
- d’un serveur MariaDB installé ;
- d’un service MariaDB démarré ;
- d’un accès administrateur local ;
- d’un projet Forge capable d’exécuter les commandes de base de données.
Les commandes Forge concernées sont principalement :
Installer MariaDB¶
Mettre à jour la liste des paquets :
Installer MariaDB Server, le client MariaDB et les dépendances nécessaires au connecteur Python :
Démarrer MariaDB et l’activer au démarrage de la machine :
Vérifier que le service est actif :
Vérifier l’accès administrateur local¶
Sur Debian, Ubuntu et Linux Mint, l’accès administrateur MariaDB se fait souvent avec le compte système root, via sudo.
Ouvrir une console MariaDB administrateur :
Vous devez obtenir une invite MariaDB :
Quitter ensuite la console :
Vérifier la dépendance native MariaDB¶
Forge utilise le connecteur Python mariadb.
Ce connecteur peut avoir besoin de l’outil système mariadb_config pour s’installer correctement.
Cet outil est fourni par libmariadb-dev.
Vérifier sa présence :
Si cette commande affiche une version, la dépendance native MariaDB est prête.
Créer les comptes du projet (obligatoire)¶
Forge sépare trois niveaux d’accès à la base :
root → administration locale du serveur MariaDB (avec sudo)
forge_admin → création et migration de la base du projet
forge_app → accès applicatif en lecture/écriture
Cette séparation évite d’utiliser root comme compte applicatif et limite les droits utilisés par l’application au quotidien.
Étape indispensable avant forge db:init
forge db:init se connecte en tant que forge_admin : ce compte doit déjà exister dans MariaDB.
Il n’est pas créé automatiquement par Forge.
Sans lui, forge db:init s’arrête sur :
[ERREUR] Connexion MariaDB admin impossible. Vérifiez DB_ADMIN_* dans env/dev.
Créez donc les comptes maintenant, avant de configurer le projet et d’initialiser la base.
Suivez la section « Création complète depuis root » de la page dédiée, puis revenez ici :
Configurer les comptes MariaDB d’un projet Forge
Notez les mots de passe choisis pour forge_admin et forge_app.
Ils devront être reportés à l’identique dans env/dev à l’étape suivante.
Configurer le projet Forge¶
Dans le projet Forge, les variables de connexion se trouvent dans :
Exemple de configuration :
DB_ADMIN_LOGIN=forge_admin
DB_ADMIN_PWD=<mot_de_passe_admin_du_projet>
DB_NAME=forge_db
DB_APP_LOGIN=forge_app
DB_APP_PWD=<mot_de_passe_applicatif>
Les mots de passe doivent être propres au poste ou au projet.
Ils ne doivent pas être committés dans Git.
Remplacez forge_db par le nom de votre projet (la même valeur que dans le CREATE DATABASE).
Les valeurs DB_ADMIN_PWD et DB_APP_PWD doivent correspondre exactement aux mots de passe définis lors de la création des comptes.
Initialiser la base du projet¶
Depuis le dossier du projet Forge :
Vérifier d’abord l’état du projet :
Initialiser la base :
Si forge db:init échoue sur « Connexion MariaDB admin impossible »
Forge n’a pas pu se connecter avec forge_admin. Causes fréquentes :
- le compte
forge_adminn’existe pas encore dans MariaDB (voir « Créer les comptes du projet » plus haut) ; - le mot de passe
DB_ADMIN_PWDdeenv/devne correspond pas à celui duCREATE USER 'forge_admin'; DB_ADMIN_HOSTouDB_ADMIN_PORTne pointent pas vers le serveur MariaDB local.
Appliquer les migrations disponibles :
Vérifier l’état des migrations :
Rôle des commandes Forge¶
forge db:init¶
Prépare la base du projet.
Cette commande initialise la structure attendue par Forge et crée notamment la table technique :
Cette table permet à Forge de savoir quelles migrations SQL ont déjà été appliquées.
forge db:apply¶
Applique les migrations SQL du projet.
Comme db:init, cette commande modifie la structure : elle se connecte en forge_admin (DB_ADMIN_*), pas avec le compte applicatif.
Le compte forge_app reste donc en lecture/écriture de données uniquement (SELECT/INSERT/UPDATE/DELETE).
Les fichiers de migration sont lus dans :
Forge applique les migrations locales en attente dans l’ordre croissant de version.
forge migration:status¶
Affiche les migrations connues et leur état.
Cette commande permet de vérifier ce qui est déjà appliqué et ce qui reste en attente.
Travailler avec les migrations SQL¶
Forge garde les migrations SQL visibles.
Le développeur peut donc relire, adapter et versionner les fichiers SQL générés avant de les appliquer.
Le workflow complet est détaillé ici :
Forge peut aider à produire des migrations, mais il ne remplace pas la relecture humaine du SQL.
Point de vigilance sur les migrations¶
MariaDB ne garantit pas toujours un rollback complet des opérations DDL.
Une migration qui modifie la structure d’une table doit donc être relue avant application, surtout en production ou sur une base contenant des données importantes.
Forge arrête l’exécution au premier échec, mais ne prétend pas annuler automatiquement tout ce que MariaDB a déjà exécuté.
Vérification finale¶
À la fin de la préparation MariaDB, les commandes suivantes doivent fonctionner :
Dans le projet Forge :
Poursuivre la configuration¶
MariaDB est maintenant prêt pour un projet Forge local.
Pour continuer l’installation selon votre besoin, poursuivez avec les pages suivantes :
- Configurer les comptes MariaDB d’un projet Forge : créer proprement les comptes
forge_adminetforge_app. - Migrations SQL : comprendre le cycle complet des migrations Forge.
- Installation sur Debian, Ubuntu et leurs dérivées : revenir à l’installation générale du poste Linux.
- Déploiement production : préparer un serveur destiné à héberger une application Forge.