Firestore nouvelle base de données - Comment puis-je sauvegarder
est-ce que le service de base de données de Google firestore fournit une sauvegarde? Si oui, comment faire une sauvegarde de la base de données et comment puis-je restaurer en cas d'erreur?
5 réponses
mise à jour juillet 2018: Cloud Firestore prend désormais en charge l'importation et l'exportation gérées de données. Voir la documentation pour plus de détails:
https://firebase.google.com/docs/firestore/manage-data/export-import
[Googleurs ici] non, pour l'instant nous n'offrons pas de service de sauvegarde ou d'import/export géré. C'est quelque chose que nous allons certainement offrir à l'avenir, nous n'avons tout simplement pas l'obtenir prêt pour la première Bêta publier.
la meilleure façon de sauvegarder maintenant est d'écrire votre propre script en utilisant notre Java/Python / Node.js / Go server SDKs, il devrait être assez simple de télécharger tous les documents de chaque collection et de les écrire en retour si vous avez besoin.
https://www.npmjs.com/package/firestore-backup
Est un outil qui a été créé pour faire juste cela.
(je n'ai pas de créer, il suffit de l'ajouter ici que les gens vont trouver cette question)
mise à Jour: il est maintenant possible de sauvegarder et de restaurer Firebase Firestore en utilisant Cloud Firestore managed export and import service
Tu fais:
Créer un Nuage seau de Rangement pour votre projet - assurez-vous qu'il s'agit d'une région aux États-Unis-central1 ou 2 / multi-régional type de seau
configurer gcloud pour votre projet en utilisant
gcloud config set project [PROJECT_ID]
EXPORT
Exporter tous en appelant
gcloud alpha firestore export gs://[BUCKET_NAME]
Ou Exporter une collection à l'aide de
gcloud alpha firestore export gs://[BUCKET_NAME] --collection-ids='[COLLECTION_ID_1]','[COLLECTION_ID_2]'
IMPORT
importer tout en appelant
gcloud alpha firestore import gs://[BUCKET_NAME]/[EXPORT_PREFIX]/
où [BUCKET_NAME] et [EXPORT_PREFIX] pointent vers l'emplacement de vos fichiers d'exportation. Par exemple - gcloud alpha firestore import gs://exports-bucket/2017-05-25T23:54:39_76544/
Importer une collection spécifique par appel:
gcloud alpha firestore import --collection-ids='[COLLECTION_ID_1]','[COLLECTION_ID_2]' gs://[BUCKET_NAME]/[EXPORT_PREFIX]/
les instructions complètes sont disponibles ici: https://firebase.google.com/docs/firestore/manage-data/export-import
j'utilise la solution de rechange suivante afin d'avoir des sauvegardes journalières de firestore:
j'ai installé ce dans le monde entier: https://www.npmjs.com/package/firestore-backup-restore
j'ai une tâche cron qui ressemble à ceci:
0 12 * * * cd ~/my/backup/script/folder && ./backup-script.sh
Et mon backup-script.sh ressemble à ceci:
#!/bin/sh
. ~/.bash_profile
export PATH=/usr/local/bin/
dt=$(/bin/date '+%d-%m-%Y %H:%M:%S');
echo "starting backup for $dt"
firestore-backup-restore -a ~/path/to/account/credentials/file.json -B ./backups/"$dt"
j'ai écrit un outil qui traverse les collections/documents de la base de données et exporte tout dans un seul fichier json. De plus, il importera la même structure (utile pour cloner/déplacer les bases de données Firestore). Il est publié sous forme de paquet NPM. N'hésitez pas à essayer et donner de la rétroaction.