数据存储区中的 Google App Engine 版本控制

发布于 2024-11-08 05:18:37 字数 283 浏览 0 评论 0原文

Google App Engine 有应用程序版本的概念。即,您可以同时运行应用程序的多个版本,并可以在不同的子域中访问。例如:http://1.my-app-name.appspot.comhttp://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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

旧竹 2024-11-15 05:18:37

正确,应用程序版本仅指您上传的文件。两个版本都使用相同的数据存储。

请注意,数据存储本身是无模式的。每个实体都是键/值对的独立集合。同一类型的两个实体不必共享同一组属性或属性类型。 db.Model 提供了围绕数据存储的 ORM 抽象,但不定义或强制执行任何类型的全局模式。

虽然数据存储区没有版本控制,但它支持命名空间。如果您想要为应用程序的每个主要版本创建一个新的数据存储段,您可以执行以下操作:

import os
from google.appengine.api import namespace_manager

namespace_manager.set_namespace(os.environ['CURRENT_VERSION_ID'])

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:

import os
from google.appengine.api import namespace_manager

namespace_manager.set_namespace(os.environ['CURRENT_VERSION_ID'])
末が日狂欢 2024-11-15 05:18:37

数据存储没有版本的概念。

当您更新模型定义时,您将来创建的任何实体都将属于新类型,而旧实体将属于旧类型。如果您的代码不知道这些更改,这通常会导致运行时错误。

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文