如何迁移数据&从一个firebase到另一个firebase的设置?

时间:2013-03-21 13:45:43

标签: firebase

是否有任何工具可以帮助从开发阶段到升级到prod的数据迁移?如果没有,是否有计划建造它们?

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

5 个答案:

答案 0 :(得分:14)

我们所有的数据都可以通过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设置不能轻易自动转移(例如授权来源),但它们可能不应该是因为它们在分期和生产之间会有所不同。

答案 1 :(得分:3)

安德鲁上面所说的大多是正确的,但这可能是大型火灾的痛苦。 在https://github.com/firebase/firebase-import有一个导入项目,它将通过分解放置请求来帮助导入大型火灾基地。 还有一点需要注意,你需要在curl url周围使用引号,否则&将介绍该过程。所以安德鲁上面提到的将作为

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

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

祝你好运!

答案 2 :(得分:2)

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

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

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

命令行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"为此工作安装的工具。如果您以后想要恢复或仅使用部分数据,则单独导出每个集合非常有用。

答案 3 :(得分:0)

Firebase正在开发一项新服务" S3客户备份"这会将你整个firebase的.gz压缩备份每晚复制到你给他们的s3桶中。我现在正在评估此服务的测试版,但如果它是您需要的,我建议请求支持。

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

答案 4 :(得分:0)

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