Google 云数据存储模拟器 - gcloud beta 模拟器数据存储启动无法创建 local_db.bin
Google Cloud Datastore Emulator - gcloud beta emulators datastore start fails to create local_db.bin
我在 Windows 下安装了 Google Cloud SDK,并且我在 Powershell 中 运行ning 命令(运行ning 作为管理员)。
我已经 运行 以下内容以确保我的所有 Google Cloud SDK 组件都已更新:
gcloud component update
然后我设置数据存储模拟器主机域和项目 ID,如下所示:
set DATASTORE_EMULATOR_HOST=localhost:8081
set DATASTORE_PROJECT_ID=project-id
然后我将使用以下命令 运行 宁 Google Cloud Datastore Mode Emulator:
gcloud beta emulators datastore start
这是为了创建一个文件 local_db.bin
,它提供对数据的本地访问。当我 运行 命令时,我在终端(Powershell,运行 宁作为管理员)收到一条消息,该文件将在以下位置创建:
C:\Users\myUserName\AppData\Roaming\gcloud\emulators\datastore\WEB-INF\appengine-generated\local_db.bin
文件未创建,并且没有有用的错误信息。我做了以下事情:
- 使用
gcloud auth list
检查了 gcloud SDK 可用的认证帐户列表
- 确保我使用预期的帐户登录,使用
gcloud auth login 'accountName'
并使用 Google 登录
如何获得有关错误原因的更多信息?我还能尝试什么?
local_db.bin
没有创建失败。它只是表明数据库是空的。如果您打开浏览器并导航到 http://localhost:8081,当服务器处于 运行ning 时,您可以验证一切是否按预期工作。您应该会收到一条 ok
消息作为响应。
如 Running the Datastore mode Emulator > Emulator data directories 文档部分所述,“要清除 local_db.bin 文件的内容,请停止模拟器并手动删除该文件。” .这意味着您将通过这种方式清除数据库中的所有内容。
我试过文档,确实文件 local_db.bin
在开始时丢失了。但是,在数据库中添加一些数据后,文件生成了。我设法做到了这一点,方法是基于 Google GitHub samples.
创建一个 Python 应用程序
注意:我还建议在您自己指定的目录而不是默认目录中启动模拟器,这样您就可以确保您拥有该目录的所有权限。例如为此,请按照以下步骤操作:
- 在桌面内创建一个名为
Datastore_Emulator
的目录
- 执行命令:
$ gcloud beta emulators datastore start --data-dir=C:\Users\[USERNAME]\Desktop\Datastore_Emulator\
- 这将创建一个空目录
C:\Users\[USERNAME]\Desktop\Datastore_Emulator\WEB-INF\appengine-generated\
- 现在创建一个 Python 脚本,将一些数据添加到数据库,然后将生成
local_db.bin
文件。
更新
您参考的文档,Windows
部分下的命令用于命令提示符。 &&
不支持在 Power shell 中链接命令,但您需要改用 ;
。有关详细信息,请参阅此 Whosebug answer。
此外,Power Shell 不支持命令 gcloud beta emulators datastore env-init > set_vars.cmd && set_vars.cmd
,因为当您 运行 它时,生成的 set_vars.cmd
文件可能会遇到问题。以后建议使用命令提示符执行Google文档中提到的命令。
我在 Windows 下安装了 Google Cloud SDK,并且我在 Powershell 中 运行ning 命令(运行ning 作为管理员)。
我已经 运行 以下内容以确保我的所有 Google Cloud SDK 组件都已更新:
gcloud component update
然后我设置数据存储模拟器主机域和项目 ID,如下所示:
set DATASTORE_EMULATOR_HOST=localhost:8081
set DATASTORE_PROJECT_ID=project-id
然后我将使用以下命令 运行 宁 Google Cloud Datastore Mode Emulator:
gcloud beta emulators datastore start
这是为了创建一个文件 local_db.bin
,它提供对数据的本地访问。当我 运行 命令时,我在终端(Powershell,运行 宁作为管理员)收到一条消息,该文件将在以下位置创建:
C:\Users\myUserName\AppData\Roaming\gcloud\emulators\datastore\WEB-INF\appengine-generated\local_db.bin
文件未创建,并且没有有用的错误信息。我做了以下事情:
- 使用
gcloud auth list
检查了 gcloud SDK 可用的认证帐户列表
- 确保我使用预期的帐户登录,使用
gcloud auth login 'accountName'
并使用 Google 登录
如何获得有关错误原因的更多信息?我还能尝试什么?
local_db.bin
没有创建失败。它只是表明数据库是空的。如果您打开浏览器并导航到 http://localhost:8081,当服务器处于 运行ning 时,您可以验证一切是否按预期工作。您应该会收到一条 ok
消息作为响应。
如 Running the Datastore mode Emulator > Emulator data directories 文档部分所述,“要清除 local_db.bin 文件的内容,请停止模拟器并手动删除该文件。” .这意味着您将通过这种方式清除数据库中的所有内容。
我试过文档,确实文件 local_db.bin
在开始时丢失了。但是,在数据库中添加一些数据后,文件生成了。我设法做到了这一点,方法是基于 Google GitHub samples.
注意:我还建议在您自己指定的目录而不是默认目录中启动模拟器,这样您就可以确保您拥有该目录的所有权限。例如为此,请按照以下步骤操作:
- 在桌面内创建一个名为
Datastore_Emulator
的目录
- 执行命令:
$ gcloud beta emulators datastore start --data-dir=C:\Users\[USERNAME]\Desktop\Datastore_Emulator\
- 这将创建一个空目录
C:\Users\[USERNAME]\Desktop\Datastore_Emulator\WEB-INF\appengine-generated\
- 现在创建一个 Python 脚本,将一些数据添加到数据库,然后将生成
local_db.bin
文件。
更新
您参考的文档,Windows
部分下的命令用于命令提示符。 &&
不支持在 Power shell 中链接命令,但您需要改用 ;
。有关详细信息,请参阅此 Whosebug answer。
此外,Power Shell 不支持命令 gcloud beta emulators datastore env-init > set_vars.cmd && set_vars.cmd
,因为当您 运行 它时,生成的 set_vars.cmd
文件可能会遇到问题。以后建议使用命令提示符执行Google文档中提到的命令。