/ / Comment synchroniser les modifications de script de base de données PostgreSQL avec Django back-end - django, base de données, postgresql, backend

Comment synchroniser les modifications du script de base de données PostgreSQL avec le back-end de Django - django, database, postgresql, backend

J'ai reçu un nouveau projet avec site webfonctionnant sur le back-end Django. Ceci utilise la base de données PostgreSQL. Les modifications que j'ai effectuées sur mon système local. Mon client m'a fourni un ordinateur distant en direct avec un accès FTP, SSH et base de données approprié. Il a également créé un fichier de vidage de la base de données et me l'a fourni. J'ai effectué les modifications nécessaires du code et de la base de données. Mais maintenant, je ne sais pas comment synchroniser ces modifications de base de données sur le serveur. Je suis assez nouveau dans les domaines de Django et PostgreSQL et je ne sais pas comment accomplir cette tâche. Votre aide sera grandement appréciée à cet égard. Merci

Réponses:

0 pour la réponse № 1

Vous ne devriez pas "apporter de modifications directement à la base de données. C’est ce que migrations sont pour.


1 pour la réponse № 2

Comme l'a dit Daniel Roseman, les migrations de Djangosera plus facile à faire au lieu de "Il suffit de remplacer l'ancien schéma de base de données par le nouveau". Parce qu’il est facile de faire des erreurs et d’oublier le champ que vous avez modifié ou supprimé.Et parfois, cela posera problème lorsque le champ créé dans la base de données est légèrement différent de celui du modèle Django.

Par exemple

  • Dans la base de données, vous définissez un champ create_time comme ceci datetime (6) NOT NULL par défaut CURRENT_TIMESTAMP à la mise à jour CURRENT_TIMESTAMP
  • Dans le modèle Django, vous définissez create_time = models.DateTimeField () dans le modèle dango

Votre projet fonctionnera, mais vous ne remarquerez rienil y aura un problème lorsque vous mettrez à jour l'enregistrement mais le create_time sera également mis à jour. C’est difficile de trouver le bogue et de maintenir le projet. De plus, si vous utilisez docker pour déployer votre projet, vous pouvez simplement utiliser le fichier docker.

python manage.py makemigrations
python manage.py migrate

pour vous assurer que chaque base de données aura le même schéma de base de données.Vous n’avez pas à remplacer la base de données une à une.