从 Google 云 shell 导入应用程序模型

Importing application models from Google cloud shell

我对 Google App Engine 非常非常陌生,但我需要管理一个使用它的基于 WebApp2(因此,Python)的网站。具体来说,我需要过滤查询集并删除某些模型实例。

在本地构建网站没问题。在本地,我可以通过点击

来获取模型
http://localhost:8000/console

在我的浏览器中。这将拉起 "interactive console",我可以在其中放置一些代码,例如

from application.models.user import User

它会起作用的。从那里我可以在数据存储中创建/删除用户对象,因此这个本地交互式控制台似乎具有类似 ORM 的功能。 (我来自 Django 背景,这就是它让我想起的)。

不过我的在线网站上好像没有这个选项。我希望在

找到它
https://console.cloud.google.com/home/dashboard?project=<my project>

当我找到 "activate google cloud shell" 的控件时,我以为我 已经 找到了它。这会在网络服务器上打开一个命令行,但网站的代码库似乎不存在于此,因此启动 Python cli 并尝试像我在本地做的那样导入应用程序模型是行不通的。即使我可以,我怀疑它会像我本地构建的那样是一个类似 Django 的 ORM。

我是不是想错了?您如何通过 GAE / WebApp2 网站的后端创建/过滤/删除/等数据存储对象? "Google cloud shell" 是答案的一部分吗?

要在云中访问您的应用程序代码 shell 一种选择是在 shell 中创建您的应用程序存储库的本地副本。举个例子(解决不同的问题,是的)你可以看看 。但我不能 100% 确定这是否会自动让您访问应用程序的数据存储区。值得一试恕我直言。

另一种选择是将所需的操作作为处理程序操作挂接到您的应用程序本身并从那里执行。最终 hidden/protected/restricted 通过身份验证,例如仅针对管理员用户。这就是我在更改实体模型时不时需要的一次性数据存储迁移。

最后,但不是真正的编程访问 - 您可以使用开发人员控制台中的数据存储页面手动查找、读取和修改您的实体,请参阅 Managing Datastore from the Console

使用remote_api_shell。您 运行 在您的应用程序代码所在的本地。然后您可以导入您的模型,执行相同的查询等,并添加 modify/delete 个实体。我经常将其用于一系列任务。使用此方法更新超过 100K 条记录会变得很慢。

https://cloud.google.com/appengine/docs/standard/python/tools/remoteapi