Bonjour messieurs et mesdames,
Je suis nouveau sur le forum. Ci-dessous l'expression de mon besoin :
J'aurais besoin de migrer plusieurs tables d'une base de donnée mysql à l'aide d'un script python.
Je précise que les données de la BDD (plusieurs centaines de lignes) doivent passer d'une app django (version 1.7) à une app django (version 2.0). Évidemment entre ces deux versions, les modèles changent (ajouts, suppressions d'instances et ou d'options).
J'ai pensé à récupérer les données de la BDD via le module Python "MySQLdb", ou en passant par une fixture django.
Cependant j'ai du mal à trouver la bonne méthode pour :
- ne pas renseigner à la main les différentes instances de chaque modèle à récupérer avec MySQLdb.
- exploiter mon fichier fixture sérialisé en ".yaml" qui ressemble grossomodo à ceci
En V1
- model : toto.voiture
pk: 1
fields: {owner: 2, model_de_voiture: 1, since: !!timestamp '2018-02-28 16:40:52+00:00',
until: null, purpose: chaine1, location: chaine2,
attribution_comment: chaine3}
En V2
model: toto.attribution
pk: 495
- fields: {comments: "chaine1", created_at: !!timestamp '2017-06-29 16:00:28',
location: "chaine2", model: chaine3, os: chaine4, price: int, purchase_date: 2017-06-23, serial: chaine5,
updated_at: !!timestamp '2017-12-26 10:26:10', user: null}
A mon sens, les principales différences se trouve dans :
- la non correspondance de deux champs entre les deux versions : created_at et updated_at.
- les noms des instances
- les noms des tables.
Avec l'expérience qui est la votre, pourriez-vous me guider vers une bonne approche permettant de faire une migration propre de mes modèles contenu dans ma base de données mysql ?
Merci beaucoup de votre attention,
Partager