3. Bases de données, sites et terminaux
3.2 La base de données d'un projet
Une base de données et un utilisateur rien que pour le projet, la connexion écrite dans le fichier .env, les sauvegardes et la restauration.
Dans l'application: «Projets»
En bref
- Chaque projet a une base de données et un utilisateur bien à lui, avec un mot de passe généré par le kit.
- « Écrire dans .env » place la connexion dans le fichier .env du projet, après vous avoir montré ce qui change.
- « Copier le bloc .env » copie les mêmes lignes, à coller où vous voulez.
- « Exporter » enregistre une copie de la base de données ; « Restaurer… » la remet en place.
- Tout se fait depuis Projets › le projet › section « Bases de données ».

Base, utilisateur, mot de passe et adresse du projet, « Écrire dans .env » et les copies, avec « Exporter » et « Restaurer… ».
Créer la base et l'utilisateur
La section a une partie pour MySQL et une pour MongoDB (avec « utilisé par le projet » si le kit voit que le projet l'utilise). Si le projet utilise SQLite, une note explique que la base de données est un fichier du projet et qu'aucun serveur n'est nécessaire.
- Appuyez sur « Créer la base et l'utilisateur » dans la partie du serveur qu'il vous faut.
- Le kit installe et démarre le serveur si nécessaire, puis crée une base de données et un utilisateur au nom du projet (minuscules, chiffres et tiret bas : gestionale-fatture devient gestionale_fatture) et un mot de passe de 32 caractères.
- La partie affiche « Base de données », « Utilisateur », « Mot de passe » et « Chaîne » (masqués, avec « Afficher » et « Copier ») et « Adresse ».
Écrire la connexion dans le fichier .env
- Appuyez sur « Écrire dans .env ».
- « Lignes de .env qui changent » apparaît : pour chaque clé, l'ancienne valeur barrée et la nouvelle (mots de passe masqués).
- Appuyez sur « Écrire » pour confirmer ou sur « Annuler ».
Le kit choisit les clés en fonction de votre fichier .env :
| Si le .env… | MySQL écrit | MongoDB écrit |
|---|---|---|
| contient déjà DB_CONNECTION= (style Laravel) | DB_CONNECTION, DB_HOST, DB_PORT, DB_DATABASE, DB_USERNAME, DB_PASSWORD | DB_CONNECTION=mongodb, DB_DATABASE, MONGODB_URI |
| ne le contient pas | DATABASE_URL | MONGODB_URI |
.envDB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=gestionale
DB_USERNAME=gestionale
DB_PASSWORD=3f9c…(32 caractères générés par le kit).envDATABASE_URL=mysql://portale:3f9c…@127.0.0.1:3306/portale
MONGODB_URI=mongodb://portale:a71e…@127.0.0.1:27017/portale?authSource=portale- Si le fichier .env n'existe pas, il est créé en copiant .env.example. Les autres lignes et les commentaires restent.
- Si la connexion est déjà la bonne : « Le fichier .env contient déjà cette connexion. »
- « Copier le bloc .env », juste à côté, ne touche pas le fichier : il copie les lignes du tableau (DB_* pour Laravel, sinon DATABASE_URL ou MONGODB_URI) à coller dans un autre .env, un fichier de configuration ou un terminal ; « Copié » apparaît. Les lignes contiennent le mot de passe : le kit ne les lit que lorsque vous appuyez sur le bouton.
Copies et restauration
- Dans la partie « Copies », appuyez sur « Exporter » : « Copie enregistrée : … » apparaît et la copie s'ajoute à la liste.
- Pour revenir à une copie, appuyez sur « Restaurer… » à côté du fichier et confirmez : « Les données actuelles sont remplacées. »
- Avant de restaurer, le kit copie ce que la base contient maintenant, dans <base>-prima-del-ripristino-<date et heure> : si la copie échoue, la restauration n'a pas lieu. Ainsi, la restauration du mauvais fichier s'annule en restaurant cette copie.
- « Ouvrir le dossier des copies » ouvre le dossier : pour restaurer une copie venue de l'extérieur (d'un collègue, d'un autre kit), placez-la là et elle apparaîtra dans la liste.
Des copies de sécurité (« prima-del-ripristino » et « prima-del-cambio-di-versione »), le kit garde les 3 dernières de chaque type et supprime les plus anciennes. Les copies faites avec « Exporter » ne sont jamais supprimées.
Changer la version du serveur
Si vous avez plusieurs versions de MySQL ou MongoDB, le menu « Version du serveur » choisit sur laquelle tourne la base de données du projet. Quand vous la changez, la base et l'utilisateur sont créés aussi sur la nouvelle version, vides : les données se transfèrent avec une copie (Exporter sur l'ancienne, Restaurer sur la nouvelle). Si la version choisie n'est pas installée, « Installer … » apparaît. Avant le changement, le kit copie la base sur la version qu'il quitte, dans <base>-prima-del-cambio-di-versione-<date et heure> : si la copie échoue, la version ne change pas (si cette version n'est plus installée, il n'y a rien à copier et le changement se fait).
Sous le capot
- Noms, mots de passe et versions de la base de données du projet : data\projects\<projet>\private\db.json, lisible uniquement par votre utilisateur sur NTFS.
- MySQL : utilisateur avec caching_sha2_password sur localhost et 127.0.0.1, tous les droits sur la seule base de données du projet. MongoDB : rôle dbOwner sur la base, authSource égal au nom de la base.
- Les copies MySQL sont des fichiers .sql faits avec mysqldump (--single-transaction, avec routines, triggers et événements) ; celles de MongoDB des fichiers .archive.gz faits avec mongodump. La restauration MySQL tourne avec l'utilisateur du projet et sans commandes du client ; celle de MongoDB ne touche que la base du projet.
- Les copies de sécurité MySQL utilisent mysqldump --force : un objet cassé (une vue sur une table supprimée) n'arrête pas la copie du reste. Avant une restauration MySQL, l'administrateur supprime les vues, triggers, routines et événements de la seule base du projet (l'utilisateur du projet ne pourrait pas remplacer ceux de root) ; la copie les recrée en tant qu'utilisateur du projet.
- Quand vous supprimez le projet depuis l'application, le kit supprime aussi la base et l'utilisateur sur chaque version où il les avait créés.