Supposons que j'ai une définition de modèle comme celui-ci:Comment mettre à jour un modèle
class Image(db.Model):
id = db.StringProperty()
url = db.URLProperty()
Maintenant, je veux ajouter quelques champs à ce modèle pour la faire ressembler à ceci:
class Image(db.Model):
id = db.StringProperty()
url = db.URLProperty()
width = db.IntegerProperty()
height = db.IntegerProperty()
Ainsi, ce nouveau modèle sera appliqué correctement aux entités Image
nouvellement ajoutées. Mais je veux aussi mettre à jour les entités déjà existantes afin qu'elles contiennent ces deux nouveaux champs et les remplir de valeurs. Est-ce qu'une entité déjà existante obtiendra ces deux champs automatiquement alors quand je me réfère à eux, cela me donnera des champs vides ou cela provoquera-t-il une erreur? Je suppose que je vais devoir créer une fonction d'aide qui va passer par toutes les entités existantes et définir de nouvelles valeurs de champs, non? Alors, que dois-je garder à l'esprit et comment faire mieux cette mise à jour du modèle? Je pense que cela arrivera parfois au fur et à mesure que l'application émergera, alors je pense qu'il serait utile d'avoir un flux direct pour le faire.
J'ai écrit un billet de blog il y a quelques années qui pourrait vous aider: http://kupuguy.blogspot.com/2008/05/migrating-models.html – Duncan