从 Datastore 迁移到 Firestore 本机模式

pds*_*dsm 7 firebase google-cloud-datastore firebase-realtime-database google-cloud-firestore

上下文,我有一个数据存储的项目,它已经加载了信息,目前我们想使用云防火墙(本机模式),但我们意识到迁移是不可能的,我必须使用云防火墙(本机模式)有什么替代方案?

Mar*_*der 7

2021 年 6 月 16 日更新:

您现在可以gcloud datastore export在您的第一个项目中进行,然后gcloud firestore import在您的新项目中进行。不再需要下面更长的更复杂的迁移。

请记住,Datastore 导出会转到 Cloud Storage 存储分区。确保运行 Firestore 导入的帐户有权访问该存储桶。

2019 年的原始答案

我刚刚为我的一个网络应用程序从 Datastore 迁移到 Firestore(本机模式)。这是我需要做的:

  1. 创建一个新的 GCP 项目,因为 Firestore(原生模式)和 Datastore 不能共存于同一个项目中。
  2. 将数据从旧项目中的 Datastore 迁移到新项目中的 Firestore(本机模式)。在撰写本文时,没有任何工具可以自动执行此操作。我编写了 Python 脚本,从 Datastore 读取所有记录并将它们写入新项目中的 Firestore。这些脚本使用从 Cloud Console 下载的服务帐号密钥在我的机器上本地运行。
  • (旁注:您可能想使用gcloud datastore export后接gcloud firestore import。它似乎可以工作,并且在您这样做时不会弹出错误消息。但是文档 ID 和 JSON 属性不能很好地转换。这对我来说是一个很大的时间。唐不要走这条路。)
  1. 重写应用程序中的数据访问层。Firestore(原生模式)的 API 与 Datastore 不同。

这是相当多的工作,但就我而言,这是值得的:

  1. 因为客户端可以直接访问数据库,所以我能够停用很多服务器端代码。
  2. 我能够淘汰大量支持离线模式的客户端代码,因为 Firestore 客户端库已经实现了它。

祝你好运!


Jim*_*son 0

不幸的是,您需要在新项目中创建 Cloud Firestore 数据库,以允许现有服务帐户访问该新数据库。