如何在谷歌云数据存储中创建新模型(种类)

Posted

技术标签:

【中文标题】如何在谷歌云数据存储中创建新模型(种类)【英文标题】:How to create a new model (kind) in google cloud Datastore 【发布时间】:2018-02-20 08:22:00 【问题描述】:

我正在为我的项目使用 Google Cloud Datastore(不是 NDB)。

python2.7 和 Django。

我想创建一个新模型,比如说标签模型。

class Tag(db.Model):
    name = ndb.StringProperty()
    feature = ndb.StringProperty(default='')

我已多次向模型添加属性,但尚未创建新模型。

我的问题是,当我使用 mysql 为另一个项目更改 Django 中的模型架构时,我总是执行 manage.py migrate。

我是否也必须执行 Datastore 的迁移命令?

或者我只需要定义模型?

提前致谢!

【问题讨论】:

【参考方案1】:

与 MySQL 等 SQL 数据库不同,Cloud Datastore 不需要您提前创建种类(类似于表)。除了在您的代码中定义它之外,创建该种类不需要任何管理步骤。

当您编写第一个此类实体时,它会为您隐式创建。

您甚至可以毫无错误地查询尚不存在的种类,您将不会返回任何实体:

【讨论】:

感谢您的示例。其实我想像上面的Tag类一样提前在models.py中定义模型方案。在那种情况下,我不需要执行命令“python manage.py migrate”来创建标签表(种类),也不需要? 你认为你为什么这样做? 是的。我对 RDB 感到困惑……迁移命令适用于 RDB。【参考方案2】:

当然,您必须迁移,除非您使用来自另一个项目的相同数据库。无论如何,如果您键入 migrate 它将从您的模型创建表,但如果您正在使用现有数据库,则不会发生任何事情

【讨论】:

谢谢!我想我对 RDB 和 NoSQL 概念感到困惑。 Migrate 命令用于创建表或更新字段,对吧?我认为像云数据存储这样的无模式数据库不需要创建表或更新字段等操作。 您只能接受一个答案,但您可以同时投票 知道了!会做的!

以上是关于如何在谷歌云数据存储中创建新模型(种类)的主要内容,如果未能解决你的问题,请参考以下文章

Python:在谷歌云数据存储模拟器中保存数据

如何使用 Java API 在谷歌云存储桶中创建一个空文件夹

如何在谷歌云存储中启用实时对象访问分析?

如何在谷歌大查询中从谷歌云存储上传表格

使用 python 在谷歌云存储桶中创建文件夹

如何在谷歌云构建中访问 git 标签?