【问题标题】:Using existing NDB on Google App Engine after converting from Webapp2 to Django从 Webapp2 转换为 Django 后在 Google App Engine 上使用现有 NDB
【发布时间】:2015-01-07 14:58:37
【问题描述】:

我正在将 Webapp2 应用程序转换为 Google App Engine 上的 Django。一切都相对简单,模型已经从 webapp 模型转换为 django 等效模型。

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

【问题讨论】:

  • 嗨,您可能还记得在 GAE 上将 webapp2 应用程序转换为 django 的过程吗?因为链接已经被谷歌修改了,我找不到转换帮助。

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


【解决方案1】:

在无模式数据库中没有数据迁移的概念。 您认为的迁移实际上是创建或更改数据库架构,即数据库需要具有架构,然后迁移的想法才有意义。

【讨论】:

    【解决方案2】:

    在进一步研究之后,我注意到默认情况下 GAE 会创建默认名称为 <app_label>_<model_name> 的 db_tables(即 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'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-13
      • 1970-01-01
      • 2012-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-13
      相关资源
      最近更新 更多