【发布时间】:2016-09-05 10:00:26
【问题描述】:
我是 web2py 和谷歌应用引擎的新手,我尝试开发简单的 CRUD 操作 web2py 应用程序有一个像 db.regiser 这样的数据库表,并将这个应用程序部署在两个不同区域的谷歌应用引擎中,现在我需要创建命名空间让这个应用程序数据库访问两个不同的区域,用户在自己的命名空间上执行 CRUD 操作而不影响主数据库,以及如何为 web2py 应用程序创建数据库的命名空间。
【问题讨论】:
我是 web2py 和谷歌应用引擎的新手,我尝试开发简单的 CRUD 操作 web2py 应用程序有一个像 db.regiser 这样的数据库表,并将这个应用程序部署在两个不同区域的谷歌应用引擎中,现在我需要创建命名空间让这个应用程序数据库访问两个不同的区域,用户在自己的命名空间上执行 CRUD 操作而不影响主数据库,以及如何为 web2py 应用程序创建数据库的命名空间。
【问题讨论】:
我不认为它在文档中(尽管它在scaffolding app code 中注明),但您可以在连接字符串中指定命名空间:
db = DAL('google:datastore+ndb://mynamespace')
另外,作为一种可能的替代方案,请注意 web2py DAL 包含其自己的multi-tenancy functionality。使用这种方法,如果您将来选择不同的托管/数据存储选项,您的代码将是可移植的。
【讨论】:
Auth 记录存储在单独的共享数据存储中,要么需要其他方式来识别区域/命名空间(例如,通过 URL)。