Pour faire rapidement :
j'ai deux applications Django qui se ressemblent pas mal, avec chacune beaucoup de modèles (autour de la centaine).
Je veux réimporter les données de l'une dans l'autre, mais je ne veux pas établir à la main la correspondance entre les modèles car ça serait trop pénible et source d'erreurs.
Sachant qu'avec quelques règles simples du genre « les classes finissant par *X sont renommées en *Y », « tel attribut est renommé en truc », « tel nouvel attribut est la fusion de ces deux vieux attributs » , « les modèles avec deux clefs ForeignKey sont repris par des ManyToManyFields », etc, j'arrive à cerner 99% des modifications...
J'arrive donc à programmer la correspondance des classes et des attributs en faisant de l'introspection pour les déterminer, pour faire une passe à la main pour corriger les erreurs restantes.
Autre souci, j'ai plusieurs classes qui ont des dépendances réciproques. Dans ce cas, je peux déterminer automatiquement l'ordre de création des objets (la relation qui peut être vide n'est pas prise en compte lors d'une première passe).
Puis au passage, je génère un graphe régulièrement, afin de déterminer les relations entre classes, en mettant en valeur les classes qui héritent d'une classe particulière, ainsi que celles dont la partie admin est faite (idem pour les relations).
[^] # Re: Déploiement de Django
Posté par flan (site web personnel) . En réponse au journal Retour d'expérience sur la mise en ligne d'un nouveau site (Django). Évalué à 3.
Pour faire rapidement :
j'ai deux applications Django qui se ressemblent pas mal, avec chacune beaucoup de modèles (autour de la centaine).
Je veux réimporter les données de l'une dans l'autre, mais je ne veux pas établir à la main la correspondance entre les modèles car ça serait trop pénible et source d'erreurs.
Sachant qu'avec quelques règles simples du genre « les classes finissant par *X sont renommées en *Y », « tel attribut est renommé en truc », « tel nouvel attribut est la fusion de ces deux vieux attributs » , « les modèles avec deux clefs ForeignKey sont repris par des ManyToManyFields », etc, j'arrive à cerner 99% des modifications...
J'arrive donc à programmer la correspondance des classes et des attributs en faisant de l'introspection pour les déterminer, pour faire une passe à la main pour corriger les erreurs restantes.
Autre souci, j'ai plusieurs classes qui ont des dépendances réciproques. Dans ce cas, je peux déterminer automatiquement l'ordre de création des objets (la relation qui peut être vide n'est pas prise en compte lors d'une première passe).
Puis au passage, je génère un graphe régulièrement, afin de déterminer les relations entre classes, en mettant en valeur les classes qui héritent d'une classe particulière, ainsi que celles dont la partie admin est faite (idem pour les relations).