diff --git a/helm/migrate-db/templates/config-map.yaml b/helm/migrate-db/templates/config-map.yaml new file mode 100644 index 00000000..c94e21b4 --- /dev/null +++ b/helm/migrate-db/templates/config-map.yaml @@ -0,0 +1,25 @@ +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: migrate-db-script +data: + entrypoint.sh: |- + #!/bin/bash + set -e + echo "${SRC_DB_HOST}:5432:${SRC_DB_NAME}:${SRC_DB_USER}:${SRC_DB_PASS}" > ~/.pgpass + echo "${DST_DB_HOST}:5432:${DST_DB_NAME}:${DST_DB_USER}:${DST_DB_PASS}" >> ~/.pgpass + chmod 0600 ~/.pgpass + chown job:job ~/.pgpass + set -x + + # Dump the source database + pg_dump --jobs=4 --host="$SRC_DB_HOST" --username="$SRC_DB_USER" --dbname="$SRC_DB_NAME" --no-owner --no-privileges --verbose --format=directory --file=/home/job/db-dump + + psql --host="$DST_DB_HOST" --username="$DST_DB_USER" --dbname="$DST_DB_NAME" -c "drop schema if exists public cascade;" + + psql --host="$DST_DB_HOST" --username="$DST_DB_USER" --dbname="$DST_DB_NAME" -c "create schema public;" + + # Restore the source database dump to the destination database + pg_restore --jobs=4 --host="$DST_DB_HOST" --username="$DST_DB_USER" --dbname="$DST_DB_NAME" --no-owner --no-privileges --verbose /home/job/db-dump + rm -rv /home/job/db-dump ~/.pgpass diff --git a/helm/migrate-db/templates/job.yaml b/helm/migrate-db/templates/job.yaml index 19fb7a70..674941f7 100644 --- a/helm/migrate-db/templates/job.yaml +++ b/helm/migrate-db/templates/job.yaml @@ -1,29 +1,4 @@ --- -apiVersion: v1 -kind: ConfigMap -metadata: - name: migrate-db-script -data: - entrypoint.sh: |- - #!/bin/bash - set -e - echo "${SRC_DB_HOST}:5432:${SRC_DB_NAME}:${SRC_DB_USER}:${SRC_DB_PASS}" > ~/.pgpass - echo "${DST_DB_HOST}:5432:${DST_DB_NAME}:${DST_DB_USER}:${DST_DB_PASS}" >> ~/.pgpass - chmod 0600 ~/.pgpass - chown job:job ~/.pgpass - set -x - - # Dump the source database - pg_dump --jobs=4 --host="$SRC_DB_HOST" --username="$SRC_DB_USER" --dbname="$SRC_DB_NAME" --no-owner --no-privileges --verbose --format=directory --file=/home/job/db-dump - - psql --host="$DST_DB_HOST" --username="$DST_DB_USER" --dbname="$DST_DB_NAME" -c "drop schema if exists public cascade;" - - psql --host="$DST_DB_HOST" --username="$DST_DB_USER" --dbname="$DST_DB_NAME" -c "create schema public;" - - # Restore the source database dump to the destination database - pg_restore --jobs=4 --host="$DST_DB_HOST" --username="$DST_DB_USER" --dbname="$DST_DB_NAME" --no-owner --no-privileges --verbose /home/job/db-dump - rm -rv /home/job/db-dump ~/.pgpass ---- apiVersion: batch/v1 kind: Job metadata: