从Webapp2转换为Django后,在Google App Engine上使用现有的NDB

时间:2014-11-11 05:56:36

标签: django google-app-engine google-cloud-datastore app-engine-ndb webapp2

我正在使用Google App Engine将Webapp2应用转换为Django。一切都相对简单,模型已经从webapp模型转换为django等价物。

但是,我觉得这可能已经被应用引擎团队Refering This...的帖子掩盖了。我是否需要执行数据迁移才能重新使用现有数据,或者我可以简单地使用现有的NDB模型不知何故? (如果是这样,需要什么配置?我似乎无法弄清楚这一点。)

2 个答案:

答案 0 :(得分:1)

在无模式数据库中没有数据迁移的概念。 您认为的迁移实际上是创建或更改数据库模式,即数据库只需要有一个模式,那么迁移的想法才有意义。

答案 1 :(得分:0)

在进一步研究之后,我注意到默认GAE会创建db_tables,默认名称为<app_label>_<model_name>(即coreapp_GuestBook)。

因此,如果您specify the model meta options in Django将已转换的应用名称与原始应用名称相匹配,则可以使用Django访问相同的模型。请注意,如果您没有逐个将webapp字段转换为适当的Django字段,则字段值可能无法访问或可能已损坏。

参见参考:https://cloud.google.com/appengine/articles/django-nonrel

例如,在我的情况下,将通过指定:

来检索Article应用
class Article(models.Model):
    title = models.CharField(max_length=255)

    class Meta:
        db_table = 'Article'
        verbose_name = 'Article'
        verbose_name_plural = 'Articles'