2015-01-12 22 views
17

Firebase DB'yi yedeklemede yaygın bir uygulama olup olmadığını merak ediyordum. Kaygım, Veritabanımızı yanlışlıkla silen bazı süreçlerdir.Firebase DB'yi yedeklemek mümkün mü?

Teşekkürler! Bu sorunun zaman itibariyle

+2

Googling "firebase DB backup", bunu yapmak için bir dizi Github projesi göstermektedir. – ceejayoz

+3

Tüm verileri Firebase'inizden kolayca alabilirsiniz: https: // .firebaseio.com/.json'. –

+1

Bkz. Http://stackoverflow.com/questions/15079436/export-firebase?rq=1 ve http: // stackoverflow.com/questions/15549299/how-to-migrate-data-settings-from-one-firebase-to-another/15551711 # 15551711 –

cevap

28

Firebase günlük tüm örneklerini yedekler. Bu yüzden kendi yedeklemelerinizi saklamanız hala yararlı olabilir, bu gerekli değildir.

basitçe verileri kıvrılabilir, kendi yedeklerini oluşturmak için:

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

Not verilerinin birden gigabayt için, bu işleri yavaşlatmak ve kısa bir süre için okuma erişimi kilitlenir söyledi. Bu durumda yedekleri parçalamak ve daha küçük bölümlerle çalışmak daha iyi olurdu. shallow parameter, Firebase'de, önce verileri almak zorunda kalmadan, herhangi bir yol için bir anahtar listesi sağlayarak burada yardımcı olabilir.

Daha önce belirtildiği gibi
curl https://<instance>.firebaseio.com/.json?shallow=true 

, orada bunun için kasada birkaç GitHub kütüphaneleri de var ve artan yedeklemeler bazı yaratıcılık ve gerçek zamanlı SDK üzerinde bir iş parçacığı ile pratiktir.

+0

Açıklama: Otomatik yedekleme sadece "Bonfire" planı ve şu anda https için var gibi görünüyor : //www.firebase.com/blog/2015-03-05-private-backups-for-firebase-data.html – pjco

+4

Yanlış. GCS veya S3 kovasına aktarılan özel yedeklemeleri referans alıyorsunuz. Firebase, cevabımda belirtildiği gibi, ücretsiz dahil tüm planlar için günlük olarak tüm örnekleri yedekler. – Kato

+0

Onları geri çağırdığınızı mı söylüyorsunuz *** internally ***? Çünkü bu aynı değil. Yedeklemeyi geri yüklemek için destek birimine başvurmak, yayınınızda açıklığa kavuşturmanız gereken bir şey .... eğer bazı işlevleri kaçırmadığım sürece, lütfen bu konuya bakın. Cevabınız yanıltıcıdır. – pjco

9

Orada her proje için web arayüzü veri sayfasında şimdi "İthalat Verileri" ve "İhracat Verileri" düğmeleri, bu yüzden artık bir düğme ile yedekleme veri tıklayabilirsiniz!

Import and Export buttons

+0

En son kolay ve yararlı! – Shruti

4

dün benim normal yedekleme cronjob içinde bulunan bu veritabanı dökümlerini sahip olmak için, Firebase-araçları (npm install -g firebase-tools) kullanan bir kabuk-komut dosyası yazdı:

#!/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 

güncelleme : Bu arada, Google Cloud Storage Bucket

için otomatik yedekleme 10 ... goto Firebase Console -> Realtime Database -> sekmesini ve Backups sekmesini tıklayın.
1

Sadece curl kullanarak @ Kato'nun cevabı genişletmek için.

Her gece komutu çalıştırmak için yollar arıyordu. Benim çözümüm:
1) Google Cloud'ta bir hesaplama motoru (temel olarak bir VM) oluşturdu. AWS dünyasındaysanız EC2'ye aşina olabilirsiniz. 2)
bu

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

ben ücretsiz katman kendi içinde bunu yapmak için basit bir yolu olabilir eminim gibi basit cronjob şey yazdım. Bulut işlevlerini kullanmak gibi.

+0

sadece "daha basit bir yol" olabilecek otomatik yedeklemeler için bağlantıyı ekledi. –