J'ai deux sites Django: un pour le développement et un pour la production. De temps en temps, les données de la base de données de développement doivent être transférées dans la base de données de production ou inversement. J'utilise postgresql.Ajout manuel de causes causes IntegrityError
Cela fonctionne très bien: je vide les tables de la base de données sur laquelle je veux copier, je génère sql à partir des tables applicables et j'insère les données dans les tables vides. Jusqu'ici tout va bien.
Mais lorsque j'entre des données dans la base de données via l'interface d'administration, Django lève IntegrityErrors, car appname_modelname_pkey existe déjà.
Je pense que c'est parce que l'interface d'administration veut ajouter des données avec l'ID 1, mais c'est déjà un enregistrement importé. Django ne sait pas que l'identifiant '1' est déjà pris.
Comment résoudre ce problème? Je veux que Django incrémente l'identifiant (comme le ferait auto_increment SQL), peu importe les données déjà stockées.
Toute aide est appréciée!
Vous êtes un peu vague quand vous dites "De temps en temps, les données de la base de données de développement doivent être transférées dans la base de données de production ou inversement." Quelles sont exactement les données transférées et quel est leur rapport avec les données déjà présentes dans la ou les tables? Dans un projet que j'ai réalisé il y a environ 3 ans, certaines tables étaient maîtrisées en dev et effacées/réécrites à la mise à jour (par exemple articles) et d'autres (par exemple session) maîtrisées en production et jamais touchées lors de la mise à jour. –
Bonjour Peter. Je veux transférer les données (pas la structure, qui est déjà la même) de certaines tables d'une base de données à l'autre. Vous avez raison: toutes les tables ne sont pas transférées (par exemple, les sessions ne le sont pas). – Patrick