【问题标题】:How to migrate data & settings from one firebase to another?如何将数据和设置从一个火力库迁移到另一个火力库?
【发布时间】:2013-03-21 13:45:43
【问题描述】:

是否有任何工具可以帮助将数据从 dev 迁移到 staging 到 prod?如果没有,是否有建造它们的计划?

我知道您可以从 Forge 导出 JSON 和导入 JSON,但这不包括授权和安全设置。

【问题讨论】:

    标签: firebase


    【解决方案1】:

    我们所有的数据都可以通过 REST API 获得,因此您可以轻松地编写脚本来自己执行此操作。您可以通过设置 format=export 来导出数据(这包括响应中的所有优先级数据):

    curl https://myapp.firebaseIO.com/.json?format=export&auth=YOUR_FIREBASE_SECRET
    

    至于导出安全规则,您可以在这里访问:

    curl https://myapp.firebaseIO.com/.settings/rules/.json?auth=YOUR_FIREBASE_SECRET
    

    然后您可以使用 PUT 将它们写回新的 Firebase。

    各种 Auth 设置无法轻易地自动传输(例如 Authorized Origins),但它们可能不应该如此,因为它们在分阶段和生产之间会有所不同。

    【讨论】:

    【解决方案2】:

    安德鲁上面所说的大部分是正确的,但是对于大型火力基地来说这可能是一个痛苦。 https://github.com/firebase/firebase-import 有一个导入项目,它将通过分解 put 请求来帮助导入大型 Firebase。 另外需要注意的是,您需要在 curl url 周围使用引号,否则 & 将成为该过程的背景。所以安德鲁上面给出的将改为

    curl -o outputfile.json "https://myapp.firebaseIO.com/.json?format=export&auth=YOUR_FIREBASE_SECRET"

    然后你可以使用我与那个 json 文件链接的导入模块。

    祝你好运!

    【讨论】:

      【解决方案3】:

      如果你想要一个不需要 cURL 的选项,并且你已经安装了 firebase-tools 项目,你可以运行这个:

      firebase database:get --export -o backup.json /
      

      请注意,这应该从配置为 Firebase 项目的工作目录运行。此选项的优点是它将使用您为该项目设置的身份验证,因此您不需要将身份验证密钥硬编码到命令行中(出于安全意识),并且它不依赖于已弃用的身份验证密钥模式。

      命令行 Fu:如果您想为每个顶级键单独文件,另一种很酷的技术是调用:

      for i in `firebase database:get --shallow / | jq -r 'keys[]'`; do
          echo "Downloading $i..."
          firebase database:get --export -o $i.json /$i
      done
      

      您需要安装“jq”工具才能正常工作。如果您以后想恢复或只使用部分数据,单独导出每个集合非常有用。

      【讨论】:

        【解决方案4】:

        Firebase 正在开发一项新服务“S3 客户备份”,该服务将每晚将整个 Firebase 的 .gz 压缩备份复制到您提供给他们的 s3 存储桶中。我现在正在评估这项服务的测试版,但如果您需要它,我建议您寻求支持。

        我们的 firebase 太大而无法完成 curl 操作,而这个新解决方案将使我们能够管理我们的开发环境。因此,如果您有一个大型火力库,请设置 S3 客户备份,然后使用 firebase-import 将数据推送到您的开发/暂存火力库中。胜利!

        【讨论】:

          【解决方案5】:

          我刚刚创建了this ruby gem,用于从现有项目或新项目中克隆 Firebase 远程配置数据。

          【讨论】:

            猜你喜欢
            • 2021-06-05
            • 2020-03-16
            • 2023-01-11
            • 2017-03-15
            • 1970-01-01
            • 1970-01-01
            • 2019-12-27
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多