是否有与 rails ActiveRecord 迁移相媲美的 firestore 数据库架构迁移的概念?

Are there any concepts for firestore db schema migrations comparable to rails ActiveRecord migrations?

我们基于 Firestore DB 的模型是自然演变的。现在我们想将所有现有文档更新为新的(隐式)模式。

是否有支持该功能的工具或最佳做法是什么。我希望有一个与 rails ActiveRecord 迁移相媲美的概念。

目前,对于 Firestore,您必须编写自己的代码来将所有现有文档更新为新的(隐式)模式。我几周前在一篇 post 中读到,Firestore 团队正在努力让这一切在未来变得更容易。

如果您的新模式需要对整个数据库进行一些更改,您还可以考虑使用 Firestore import / export system,它允许您将数据转储到 GCS 存储桶中。它不是您可能预期的 JSON 格式,而是与 Cloud Datastore 使用的格式类似,因此我认为可以帮助您解决此问题。

找不到firestore schema迁移工具,所以写了fireway。它目前非常简单(它不支持反向迁移),但对于我的用例来说已经足够了。

下面是一个示例迁移脚本:

// migrations/v0.0.1__example.js

module.exports.migrate = async ({firestore}) => {
    await firestore.collection('name').add({key: 'value'});
};

然后 运行 fireway migrate 迁移您的默认项目。