数据存储区中的 Google App Engine 版本控制
Google App Engine 有应用程序版本的概念。即,您可以同时运行应用程序的多个版本,并可以在不同的子域中访问。例如:http://1.my-app-name.appspot.com
、http://2.my-app-name.appspot.com
。
应用程序的哪些方面实际上是由此“版本化”的?它只是Python + 静态文件代码库吗?数据存储有“版本”的概念吗?如果没有,那么当我更新 Google App Engine 模型的定义时会发生什么?
谢谢!
Google App Engine has the concept of app versions. i.e., you can have multiple versions of your app running concurrently and accessible at different subdomains. For instance: http://1.my-app-name.appspot.com
, http://2.my-app-name.appspot.com
.
What aspects of the app are actually "versioned" by this? Is it only the Python + Static files codebase? Does the datastore have the concept of "versions"? If not, then what happens when I update the definition of a Google App Engine model?
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
正确,应用程序版本仅指您上传的文件。两个版本都使用相同的数据存储。
请注意,数据存储本身是无模式的。每个实体都是键/值对的独立集合。同一类型的两个实体不必共享同一组属性或属性类型。 db.Model 提供了围绕数据存储的 ORM 抽象,但不定义或强制执行任何类型的全局模式。
虽然数据存储区没有版本控制,但它支持命名空间。如果您想要为应用程序的每个主要版本创建一个新的数据存储段,您可以执行以下操作:
Correct, app version refers only to your uploaded files. Both versions use with the same datastore.
Note that the datastore itself is schema-less. Each entity is an independent collection of key/value pairs. Two entities of the same kind don't have to share the same set of properties, or property types. db.Model provides an ORM abstraction around the datastore, but doesn't define or enforce any kind of global schema.
While the datstore isn't versioned, it does support namespacing. If you want a new datastore segment for each major version of your app, you can do this:
数据存储没有版本的概念。
当您更新模型定义时,您将来创建的任何实体都将属于新类型,而旧实体将属于旧类型。如果您的代码不知道这些更改,这通常会导致运行时错误。
Datastore has no concept of versions.
When you update a model definition, any entities you create in the future will be of the new type, and the old ones will be of the old type. This frequently leads to runtime errors if your code is not aware of these changes.