Возможно ли резервное копирование Firebase DB?

Интересно, существуют ли какие-либо общие методы резервного копирования базы данных firebase. Меня беспокоит какой-то процесс, случайно уничтоживший нашу базу данных.

Спасибо!

Ответы

Ответ 1

С момента возникновения этого вопроса Firebase ежедневно создает резервные копии всех экземпляров. Поэтому, сохраняя при этом свои собственные резервные копии, все же может быть полезно, это не существенно.

Для создания собственных резервных копий вы можете просто скручивать данные:

curl https://<instance>.firebaseio.com/.json?format=export

Обратите внимание, что для нескольких гигабайт данных это замедлит работу и блокирует доступ на чтение в течение короткого периода времени. В этом случае было бы лучше объединить резервные копии и работать с меньшими порциями. неглубокий параметр может помочь здесь, предоставив список ключей для любого заданного пути в Firebase без необходимости сначала получать данные.

curl https://<instance>.firebaseio.com/.json?shallow=true

Как уже упоминалось ранее, для этого также доступны несколько библиотек GitHub, а инкрементные резервные копии практичны с некоторыми креативами и рабочим потоком в SDK реального времени.

Ответ 2

Теперь на странице данных веб-интерфейса для каждого проекта теперь есть кнопки "Импорт данных" и "Экспорт данных", поэтому вы можете теперь делать резервную копию своих данных нажатием кнопки!

Кнопки импорта и экспорта

Ответ 3

только вчера написал shell- script, который использует инструменты firebase (npm install -g firebase-tools), чтобы эти дампы базы данных содержались в моей обычной резервной копии cronjob:

#!/bin/bash
# $1 is the Firebase projectId.
# $2 is the destination directory. 
# example usage: cron_firebase.sh project-12345 /home/backups/firebase
# currently being triggered by /etc/cron.hourly/firebase-hourly.cron
PROJECTID=$1
DESTINATION=$2
FIREBASE="$(which firebase)"
TIMESTAMP="$(date +"%Y-%m-%d %H:%M")"
NOW="$(date +"%Y-%m-%d_%H%M")"
cd $DESTINATION
$FIREBASE --project $PROJECTID database:get / > ./$PROJECTID.$NOW.json
tar -pczf $PROJECTID.$NOW.tar.gz ./$PROJECTID.$NOW.json && rm ./$PROJECTID.$NOW.json

update: тем временем можно автоматически создавать резервные копии в Google Cloud Storage Bucket

... goto Firebase ConsoleRealtime Database → и нажмите вкладку Backups.

Ответ 4

Просто для расширения ответа @kato с помощью curl.

Я искал способы запуска команды каждую ночь. Мое решение:
1) создал вычислительный движок (в основном виртуальную машину) в Google Cloud. Возможно, вы знакомы с EC2, если вы находитесь в мире AWS.
2) Написал простой cronjob, что-то вроде этого

0 23 * * * /usr/bin/curl https://yourdatabaseurl.com/.json?format=export -o /tmp/backuptest_`date +\%d\%m\%y`.bk

Я уверен, что может быть более простой способ сделать это в самом свободном уровне. Подобно использованию облачных функций.