我会定期在本地下载我的Google App Engine生产数据(使用基本上调用appcfg.py download_data
的自定义脚本)并将其上传到开发服务器,以便我的开发环境中的数据与生产相匹配。您可以在Launchpad上找到这些脚本:
./extra/manipular-datos.py --download
调用)./extra/launcher.py
调用)这是启动器脚本的作用:
一切正常,直到GAE 1.5.2。此时,开发服务器已更改为前缀dev~
,因此我添加了--default_partition=''
以启动开发服务器。但是现在密码更改脚本似乎无法访问已加载的数据,它总是为普通用户或管理员用户返回0个实体。我想知道如何从命令行访问数据,所以显然不是来自url,以防止在生产服务器上发生这种情况。 ./extra
中的脚本未上传到GAE,因此无法从那里执行。
为了给你一个想法(但是看一下脚本以获得更多上下文),这就是脚本用来做的事情(并且直到GAE< = 1.5.1才开始工作):
args, option_dict = ParseArguments(['', colCasaBasePath])
config, matcher = LoadAppConfig(colCasaBasePath, {})
SetupStubs(config.application, **option_dict)
可以正常访问应用程序的模型:
from src.models import WebUser, ScyllaUser
for tipo in (WebUser, ScyllaUser):
usuarios = tipo.all()
# Now len(usuarios) == 0
改变了什么(在GAE 1.5.1之后)打破了我的GAE数据访问脚本?你会如何执行这样的工作流程?
答案 0 :(得分:0)
诀窍是在访问GAE数据的脚本中将--default_partition=
参数添加到ParseArguments()
调用中:
args, option_dict = ParseArguments(['', colCasaBasePath, "--default_partition="])
请注意=
之后没有任何内容,这就是让我失望的原因。我首先尝试添加"--default_partition=''"
,但这没有任何效果(但也没有导致错误)。
添加该调用后,脚本再次能够遍历已在dev数据存储区中加载的所有用户。你可以看到我必须做出的更改on Launchpad。