-
Notifications
You must be signed in to change notification settings - Fork 317
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add .env file for database configuration #2887
base: alpha
Are you sure you want to change the base?
Conversation
39190c2
to
03a8b91
Compare
Bonjour, |
Le .env est un standard. |
Je vois pas trop l'interet on peut deja passer tout le parametrage en variable. C'est d'ailleurs ce qu'on fait nous chez jeedom pour tester le core. |
Pardon mais j’ai du mal a comprendre ta réponse. Je parle d’avoir un environnement de dev dans lequel on peut lancer les tests phpunit en utilisant un bdd différente que celle du dev. D’ailleurs si c’est possible, ça serait intéressant de documenter comment vous faites vos environnements de dev parce que la gestion des droits sur les fichiers est ingérable chez moi. |
Actuellement on a une action github pour le core qui s'occupe de checker que tout va bien en buildant le docker et en lancer le sick.php. C'est très léger mais ca suffit en général. Pour les plugins il n'y a rien si ce n'est une validation de la syntaxe. Après oui il y aurait un gros boulot pour mettre des vrais tests c'est sur mais malheureusement on a pas les moyens humain. Pour ta modification je suis mitigé je vois pas le but au final. C'est pour changer de BDD en changeant juste un fichier .env ? |
La configuration de base de donnée est une configuration d’environnement. Ce fichier permet de définir les variables d’environnement de ton application. Je te renvoi vers cet article https://www.armandphilippot.com/article/dotenv-variables-environnement si tu veux en savoir plus, mais c’est aujourd’hui plus que courament utilisé dans le dev, et pas que en PHP. C’est même directement pris en compte par docker-compose. |
Je parlerais que de l'image docker. Actuellement, le common.config.php est alimenté par les variables d'environnements, le docker compose quand il lit les variables d'environnements, les crée et les valorise dans le conteneur en execution. Ce qui permet justement de "brancher" le conteneur docker si differentes BDD, pour tester par exemple. Donc concernant l'image docker que les infos viennent du .env ou de la configuration de lancement de l'image c'est la meme. |
Le build crée le fichier ENV DB_USERNAME=jeedom
ENV DB_NAME=jeedom
ENV DB_PORT=3306
ENV DB_HOST=localhost Je ne les ai vu utilisée à aucun endroit. Ni dans le
C’est ce qui est fait (en tout cas j’ai gardé le même comportement par soucis de rétrocompatibilité) et actuellement les 2 fichiers co-existent, le |
Désolé, je fais court: le init.sh de l'image prend en charge la valorisation du fichier de conf bdd lors du lancement. core/install/OS_specific/Docker/init.sh Lines 98 to 103 in 685b1e3
Avec une erreur pour le mot de passe dans la master , mais avec une PR deja envoyé pour corriger l'ano: fix # |
On est d’accord que a part le mot de passe (préalablement généré), toute la config est en dur ? |
03a8b91
to
be7cea3
Compare
be7cea3
to
b9745f3
Compare
le common.config.php.sample contient des valeurs en dur qui sont changées par les sed pour obtenir un fichier de configuration. common.config.php Dans le cas du bare-metal ou vm, l'étape 9 de l'installation (install.sh) prend en charge la valorisation du fichier commong.config.php: step_9_jeedom_configuration : Lines 302 to 323 in 5de9f9c
Cependant, Je comprends le besoin simple de lancer des tests via des BDD de tests avec des jeux de tests différentiés et si le .env aide, cela va dans le bon sens. |
@zoic21 est-ce que ce qui te gène c'est juste la partie docker (que je peux supprimer ca n'aura pas d'impact) ou la MR en général ? |
J'ai juste pas encore eu le temps de tester, la charge est assez importante en ce moment et docker est vraiment critique (plus qu'un bug dans le core) donc je dois passer des heures a tester les moindres changements sur docker. |
Si ca peut te faire gagner du temps je peux virer la partie docker sans problème, c'était juste pour être plus clean. Je le répète, le common.config.php est toujours pris en compte tant qu'on surcharge pas avec un .env . J'ai bien fais attention a ne jamais rien casser pendant mon dev. |
Faut juste je test ton PR je peux pas le passer comme ca et la je suis complètement sous l'eau donc pas avant plusieurs semaines malheureusement, j'ai pris trop de truc dernièrement et je m'en sors plus. |
Déplace la configuration de la base de donnée dans un fichier .env (surchargeable par .env.local).
Description
Cette MR est rétrocompatible, on priorise le nouveau système mais accepte le fichier
/core/config/common.config.php
en renvoyant une deprecated si le fichier.env
est absent ou ne contient pas la configuration base de donnée.Le fichier .env peut contenire 2 variable d’environnements :
en pratique le fichier généré par l’installation sera le suivant
DATABASE_DSN=mysql://jeedom:password@localhost:3306/jeedom
Suggested changelog entry
Move database configuration in /.env file.
Types of changes
PR checklist