You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Je travaille avec LibreOsteo sur des conteneurs, et j'ai une évolution à proposer.
En effet, avec les conteneurs, les bonnes pratiques veulent que seules les données soient persistantes. Autant que possible, les configurations ne doivent pas l'être mais reposer sur des variables d'environnement. Or je souhaitais être compatible avec postgres.
J'ai donc modifié :
ajout de "psycopg2-binary" dans le fichier requirements ;
juste derrière la configuration de la SECRET_KEY, dans le base.py, je rajoute (afin de pouvoir la configurer à l'aide d'une variable d'environnement, mais je sais pas si c'est une bonne idée ^^) :
if 'CSRF' in os.environ:
SECRET_KEY = os.environ['CSRF']
à la fin du fichier base.py, j'ajoute :
if 'OSTEO_BDD' in os.environ:
if os.environ['OSTEO_BDD']=="postgres" :
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': os.environ['POSTGRES_DB'],
'USER': os.environ['POSTGRES_USER'],
'PASSWORD': os.environ['POSTGRES_PASSWORD'],
'HOST': os.environ['POSTGRES_HOST'],
'PORT': '5432', #on peut encore le variabiliser ...
}
}
Tout cela évite de devoir manipuler le fichier LibreOsteo/settings/base.py après lancement, en passant exclusivement par des variables d'environnement. Il n'a plus besoin d'être persistant comme ça.
Deux derniers points de détail :
je met directement en français dans la base.py, mais on pourrait tout autant le variabiliser ;
je suis obligé de mettre "USE_TZ = False" sinon j'ai une erreur lors de la connexion à Postgres, je ne sais pas pourquoi... mais c'était vrai avant que je ne fasse toutes ces modifications (dès que j'ai voulu mettre postgres).
Si tout ça peut être utile... :)
The text was updated successfully, but these errors were encountered:
Bonjour, merci pour la contribution proposée.
Peut être initier une pull-request pour valider les changements proposés.
Toutefois pour répondre à ces questions, j'invite à relire le Readme : https://github.com/libreosteo/LibreOsteo/blob/master/README.rst#docker-for-testing-only-or-with-postgresql , les configurations sont externalisées grâce à la variable SETTINGS et permet de surcharger la configuration sans utiliser de if dans le base.py. Ainsi la configuration est externalisée par environnement où est déployé le/les conteneurs.
Il n'est pas nécessaire d'ajouter psycogpg2-binary, les images docker contiennent déjà le nécessaire pour réaliser la connexion postgres (voir :
Bonjour,
Je travaille avec LibreOsteo sur des conteneurs, et j'ai une évolution à proposer.
En effet, avec les conteneurs, les bonnes pratiques veulent que seules les données soient persistantes. Autant que possible, les configurations ne doivent pas l'être mais reposer sur des variables d'environnement. Or je souhaitais être compatible avec postgres.
J'ai donc modifié :
if 'CSRF' in os.environ:
SECRET_KEY = os.environ['CSRF']
if 'OSTEO_BDD' in os.environ:
if os.environ['OSTEO_BDD']=="postgres" :
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': os.environ['POSTGRES_DB'],
'USER': os.environ['POSTGRES_USER'],
'PASSWORD': os.environ['POSTGRES_PASSWORD'],
'HOST': os.environ['POSTGRES_HOST'],
'PORT': '5432', #on peut encore le variabiliser ...
}
}
Tout cela évite de devoir manipuler le fichier LibreOsteo/settings/base.py après lancement, en passant exclusivement par des variables d'environnement. Il n'a plus besoin d'être persistant comme ça.
Deux derniers points de détail :
Si tout ça peut être utile... :)
The text was updated successfully, but these errors were encountered: