17 Commits

4 changed files with 40 additions and 3 deletions

1
abra.sh Normal file
View File

@ -0,0 +1 @@
export PG_BACKUP_CONFIG_VERSION=v1

22
backup-postgres.sh Normal file
View File

@ -0,0 +1,22 @@
if [ "$1" == "pre-backup" ]; then
# Remove any existing db dump and then create a new one
rm -rf $DATA_DIR/postgres/postgres-backup
source /baserow/data/.pgpass
PGPASSWORD=$DATABASE_PASSWORD pg_dump -j 8 -h localhost -U baserow baserow --format=directory -f $DATA_DIR/postgres/postgres-backup
exit
fi
if [ "$1" == "post-backup" ]; then
rm -rf $DATA_DIR/postgres/postgres-backup
exit
fi
if [ "$1" == "pre-restore" ]; then
exit
fi
if [ "$1" == "post-restore" ]; then
source /baserow/data/.pgpass
PGPASSWORD=$DATABASE_PASSWORD pg_restore -j 8 -h localhost -U baserow -d baserow -c $DATA_DIR/postgres/postgres-backup
exit
fi

View File

@ -3,7 +3,7 @@ version: "3.8"
services:
app:
image: baserow/baserow:1.31.1
image: baserow/baserow:1.35.3
networks:
- proxy
environment:
@ -28,20 +28,33 @@ services:
#- "traefik.http.routers.${STACK_NAME}.middlewares=${STACK_NAME}-redirect"
#- "traefik.http.middlewares.${STACK_NAME}-redirect.headers.SSLForceHost=true"
#- "traefik.http.middlewares.${STACK_NAME}-redirect.headers.SSLHost=${DOMAIN}"
- "coop-cloud.${STACK_NAME}.version=1.0.0+1.31.1"
- "backupbot.backup=true"
- "backupbot.backup.path=/baserow/data"
- "backupbot.backup.pre-hook=/backup.sh pre-backup"
- "backupbot.backup.post-hook=/backup.sh post-backup"
- "backupbot.restore.post-hook=/backup.sh post-restore"
- "coop-cloud.${STACK_NAME}.version=1.3.0+1.35.3"
healthcheck:
test: ["CMD", "./baserow.sh", "backend-cmd", "backend-healthcheck"]
interval: 30s
timeout: 10s
retries: 10
start_period: 1m
volumes:
- baserow_data:/baserow/data
configs:
- source: backup-postgres
target: /backup.sh
mode: 0777
volumes:
baserow_data:
configs:
backup-postgres:
name: backup-postgres_${PG_BACKUP_CONFIG_VERSION}
file: ./backup-postgres.sh
networks:
proxy:
external: true

1
release/1.3.0+1.35.3 Normal file
View File

@ -0,0 +1 @@
Backup/restore of the postgres database backend will now use pg_dump and pg_restore