CircleCIのスケジュール実行を利用したFirestoreの定期バックアップ
Firebaseの「データのエクスポートのスケジュールを設定する」をぱっと見て面倒くさそうとなったので、CircleCIのcron使ってFirestoreのバックアップを取ることにしました。
下記の環境変数とgcloud beta firestore --quiet export gs://firestore-backup
のgs://以降を変更すれば同じように動かせると思います。
version: 2.1
jobs:
backup-database:
docker:
- image: google/cloud-sdk
steps:
- checkout
- run:
name: setup gcloud
command: |
echo $PRODUCTION_GCLOUD_SERVICE_KEY | gcloud auth activate-service-account --key-file=-
gcloud --quiet config set project ${PRODUCTION_GOOGLE_PROJECT_ID}
gcloud --quiet config set compute/zone ${GOOGLE_COMPUTE_ZONE}
- run:
name: backup production database
command: gcloud beta firestore --quiet export gs://firestore-backup
workflows:
version: 2
nightly:
triggers:
- schedule:
cron: '0 15 * * *'
filters:
branches:
only: master
jobs:
- backup-database