2013-03-21 2 views
7

Есть ли какие-либо инструменты для облегчения переноса данных с dev на стадию на prod? Если нет, планируют ли их построить?Как перенести данные и настройки с одной firebase на другую?

Я знаю, что вы можете экспортировать JSON и импортировать JSON из Forge, но это не включает настройки авторизации и безопасности.

ответ

9

Все наши данные доступны через REST API, поэтому вы можете легко написать сценарий, чтобы сделать это самостоятельно. Вы можете экспортировать данные, установив формат = экспорт (это включает в себя все приоритетные данные в ответ):

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

Что касается экспорта правил безопасности, вы можете получить доступ к ним здесь:

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

Затем вы можете записать их обратно в новую Firebase, используя PUT.

Различные настройки Auth не могут быть легко перенесены автоматически (например, в Авторизованные источники), но они, вероятно, не должны быть такими, какими они будут отличаться между постановкой и производством.

+1

как сделать завиток -X положить имя файла filedestination? Каков будет синтаксис? – ingrid

+0

вот документация о ответе @ Andrew https://firebase.google.com/docs/database/rest/app-management – epool

2

То, что сказал Эндрю, в основном правильное, однако это может быть болью с большими огненными базами. Существует проект импорта по адресу https://github.com/firebase/firebase-import, который поможет импортировать большие огненные базы, разбив запросы на посылку. Также следует отметить, что вам нужно будет использовать котировки вокруг url curl, иначе & будет фоном процесса. Так что Андрей дал выше будет работать вместо того, чтобы, как

локон -o outputfile.json «https://myapp.firebaseIO.com/.json?format=export&auth=YOUR_FIREBASE_SECRET»

Затем вы можете использовать модуль импорта I, связанный с этим JSon файлом.

Удачи!

+0

собирается попробовать это - спасибо! – dazza5000

0

Firebase работает над новой услугой «Резервные копии клиентов S3», которая будет копировать сжатую резервную копию .gz всей вашей Firebase каждую ночь в ведро s3, которое вы им даете. Я оцениваю бета-версию этой службы прямо сейчас, но если это то, что вам нужно, я рекомендую просить об этом.

Наша пожарная база слишком велика для завершения операции завивки, и это новое решение позволит нам управлять нашими средами разработки. Поэтому, если у вас есть большая база данных, настройте резервные копии клиентов S3, а затем используйте firebase-import, чтобы перетащить данные в ваши dev/staging firebases. Победа!

0

Я только что создал this ruby gem для клонирования удаленных конфигурационных данных firebase из существующего проекта o нового проекта.

1

Если вы хотите вариант, который не требует локона, и у вас установлен проект firebase-tools, вы можете запустить:

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

Обратите внимание, что это должно быть запущенно из рабочего каталога, выполненный в виде Firebase проект. Преимущество этого варианта заключается в том, что он будет использовать Auth, который вы настроили для этого проекта, поэтому вам не нужно жестко программировать ключи auth в командных строках (для обеспечения безопасности), и он не полагается на устаревший шаблон автозапуска.

командной строки 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» инструмент, установленный для этой работы. Экспорт каждой коллекции по отдельности может быть действительно полезен, если вы позже захотите восстановить или использовать только часть ваших данных.

Смежные вопросы