Quelle BDD en dév avec Django?
Salut l'équipe, est-ce que je peux commencer un projet django avec sqlite3 car plus pratique en mode développement puis ensuite passer sur postgresql au momement de la production?
Je pose cette question car je suis le cours sur les modèles utilisateurs et à chaque modif on doit effacer les migrations et la bdd, or c'est beaucoup plus pratique d'effacer db.sqlite3 directement depuis pycharm que d'effacer la bdd postgres non?
Salut !
Oui bien sûr, tu peux même te faire différentes configurations (dans le même fichier de settings, et changer avec une variable d'environnement) ou même différents fichiers de settings que tu charges en fonction de ton environnement.
Tu pourrais ainsi avoir en local un fichier de settings qui utilise une BDD sqlite et en production un autre fichier de settings pour ta BDD Postgres :)
salut Thibault, merci pour ton retour. Je ne connais pas ces manips (encore trop "jeune" sur Django), est-ce que je dois travailler avec os.getenv?
Si 2 fichiers de settings différents, comment les charger? J'imagine qu'on peut créer deux configurations "runserver" différentes avec différents paramètres non?
Salut,
je me permets de continuer le fil de ta discussion avec Thibault.
os.getenv est une option pour récupérer des variables d'environnement dans ton script Python ou os.environ.get() marche aussi.
Pour organiser ta configuration avec deux fichiers de settings différents, tu peux par exemple créer un dossier settings dans ton projet Django avec un fichier __init__.py qui ne contient rien, et ensuite deux fichiers distincts, par exemple : base.py, development.py et production.py.
-
base.pycontiendra les configurations communes à tous les environnements. -
development.pyimportera tout depuisbase.pyet ajoutera ou surchargera les paramètres spécifiques au développement (comme l'utilisation de SQLite). -
production.pyfera de même mais avec les configurations adaptées à la production (comme l'utilisation de PostgreSQL).
Pour indiquer à Django quel fichier de settings utiliser, tu peux définir la variable d'environnement DJANGO_SETTINGS_MODULE avant de lancer ton serveur. Par exemple :
export DJANGO_SETTINGS_MODULE=monprojet.settings.development
python manage.py runserver
Pour Windows, ce serait plutôt :
set DJANGO_SETTINGS_MODULE=monprojet.settings.development
python manage.py runserver
En production, tu changerais development par production.
Ainsi, tu peux exécuter ton serveur local en utilisant la configuration appropriée, et faire de même pour la production.
C'est une des méthodes, il y a plusieurs moyens de faire ça dans Django. Il me semble que sur le plateforme Thibault en parle.
J'espère que ça t'aide ! N'hésite pas si tu as d'autres questions.
super merci pacdev, je vais vérifier sur la plateforme car dans mes formations, que j'effectue en même temps que mes projets, je n'en suis pas encore arrivé à ce stade. Eventuellement preneur de l'info sur l'endroit où cela est abordé 😉
Salut !
Dans mes souvenirs je ne l'aborde pas dans une vidéo. Le concept auquel je fais référence est décrit dans cet article (en anglais mais si tu fais une traduction de la page ça devrait être assez facile à suivre).
Inscris-toi
(c'est gratuit !)
Tu dois créer un compte pour participer aux discussions.
Créer un compte