我们基于Firestore DB的模型自然发展。现在,我们想将所有现有文档更新为新的(隐式)架构。
是否有任何支持该工具的工具或最佳实践是什么?我希望有一个与Rails ActiveRecord迁移相当的概念。
答案 0 :(得分:4)
我找不到Firestore模式迁移工具,所以我写了fireway。当前非常简单(它不支持反向迁移),但是对于我的用例来说已经足够了。
这是一个迁移脚本示例:
// migrations/v0.0.1__example.js
module.exports.migrate = async ({firestore}) => {
await firestore.collection('name').add({key: 'value'});
};
然后运行fireway migrate
来迁移您的默认项目。
答案 1 :(得分:1)
当前,对于Firestore,您将必须编写自己的代码以将所有现有文档更新为新的(隐式)架构。几周前,我在一篇文章中读到,Firestore团队正在努力使将来的操作变得更容易。
如果新模式要求对整个数据库进行某些更改,则也可以考虑使用Firestore import / export system,它允许您将数据转储到GCS存储桶中。它不是您可能期望的JSON格式,但是与Cloud Datastore使用的格式类似,因此我认为它将帮助您解决此问题。