0

我试图按照谷歌的文档来了解如何使用数据库设置本地开发(https://cloud.google.com/appengine/docs/standard/python/tools/using-local-server#Python_Using_the_Datastore)。但是,我没有经验水平可以跟随。我什至不确定这是否是正确的指南。该应用程序是一个使用 python 2.7 的 Django 项目。要运行本地主机,我通常输入dev_appserver.py --host 127.0.0.1 .

我的问题是:

  1. 我如何在谷歌云上下载数据存储数据库。我不想下载整个数据库,只需要足够的数据来填充本地主机,这样我就可以进行测试

  2. 下载数据库后,我需要做什么才能将其连接到本地主机?我必须在某处更改参数吗?

  3. 我需要下载数据存储吗?我可以在云上复制一个然后连接到那个数据存储吗?

  4. 当我运行 localhost 时,它是否应该尚未连接到数据存储?由于该站点在云上运行时可以工作。我在哪里可以找到连接 URI?

谢谢您的帮助

4

1 回答 1

2

开发服务器旨在模拟整个 App Engine 环境,如果您检查命令的输出,您dev_appserver.py会看到类似Starting Cloud Datastore emulator at: http://localhost:PORT. 您的代码将自动与捆绑的 Datastore 交互,根据您编写的代码推送和检索数据。您的数据将保存在本地存储中的文件中,并且将在开发服务器的不同运行中持续存在,除非它被明确删除。

此选项不提供从现有 Cloud Datastore 实例导入数据的工具,但如果您的测试程序能够通过使用以编程方式执行此操作的自定义创建脚本来使用模拟数据填充本地数据库,它是一个现成的解决方案。如果您决定采用这种方法,只需编写数据创建脚本并在运行测试之前执行它。

现在,还有另一个选项可以使用 Cloud SDK 来模拟本地 Datastore,该 SDK 提供了方便的功能。您可以在运行数据存储模拟器文档页面下找到它的可用信息。此模拟器支持导入从生产 Cloud Datastore 下载的实体以及将它们导出到文件中。

回到你的问题:

  1. 在此之后将 Cloud 实例中的数据导出到 GCS 存储桶中,然后在之后将数据从存储桶下载到您的文件系统,最后使用此处显示的命令将数据导入模拟器。
  2. 要使用模拟器,您需要先gcloud beta emulators datastore start在 Cloud Shell 中运行,然后在单独的选项卡中运行dev_appserver.py --support_datastore_emulator=true --datastore_emulator_port=8081 app.yaml
  3. 开发服务器使用上述两个模拟器之一,在这两种情况下它都没有连接到您的 Cloud Datastore。您可以使用数据库副本创建另一个用于开发目的的项目,并在那里部署您的应用程序,这样您就根本不使用模拟器。
  4. 数据存储区的请求是通过端点 https://datastore.googleapis.com/v1/projects/project-id发出的,尽管这与模拟器如何管理本地服务器中的连接无关。

希望这可以帮助。

于 2020-01-13T16:23:48.197 回答