>上下文,我有一个已经加载了信息的数据存储项目,目前我们想使用云火存储(纯模式),但我们意识到迁移是不可能的,我有什么替代方案来使用云火存储(纯模式)?
2021 年 6 月 16 日更新:
现在,您可以在第一个项目中执行gcloud datastore export
,然后在新项目中执行gcloud firestore import
。下面涉及的迁移时间越长,就不再需要了。
请记住,数据存储导出将转到云存储桶。确保运行 Firestore 导入的账户有权访问该存储桶。
2019年的原始答案
我刚刚从数据存储迁移到我的一个 Web 应用程序的 Firestore(本机模式)。这是我需要做的:
- 创建新的 GCP 项目,作为 Firestore(纯模式)和数据存储 不能在同一项目中共存。
- 将数据从旧项目中的数据存储迁移到新项目中的 Firestore(本机模式)。在撰写本文时,还没有工具可以自动执行此操作。我编写了从数据存储读取所有记录的 Python 脚本,并将它们写入新项目中的 Firestore。这些脚本使用从云控制台下载的服务帐户密钥在我的计算机上本地运行。
- (旁注:您可能会想使用
gcloud datastore export
后跟gcloud firestore import
。它似乎有效,并且当您这样做时不会弹出错误消息。但是文档 ID 和 JSON 属性不能很好地转换。这对我来说是一个很大的时间槽。不要走这条路。
- 重写应用程序中的数据访问层。 Firestore(纯模式)具有与数据存储不同的 API。
这是相当多的工作,但就我而言,这是值得的:
- 我能够停用许多服务器端代码,因为客户端可以直接访问数据库。
- 我能够停用许多客户端代码来支持离线模式,因为 Firestore 客户端库已经实现了它。
祝你好运!
遗憾的是,您需要在新项目中创建 Cloud Firestore 数据库,以允许您的现有服务帐户访问该新数据库。