add postgre
This commit is contained in:
parent
cde4fc8b7e
commit
46eb2ada33
2 changed files with 98 additions and 0 deletions
6
.gitignore
vendored
6
.gitignore
vendored
|
@ -26,6 +26,12 @@
|
|||
!src/
|
||||
!test/
|
||||
|
||||
# ------------------------
|
||||
# Include backup container
|
||||
!infrastructure/
|
||||
infrastructure/backup/__pycache__
|
||||
infrastructure/backup/.pybuilder
|
||||
|
||||
# ------------------------
|
||||
# Include Clojure tools
|
||||
!.cljstyle
|
||||
|
|
92
src/dda/backup/postgresql.clj
Normal file
92
src/dda/backup/postgresql.clj
Normal file
|
@ -0,0 +1,92 @@
|
|||
(ns dda.backup.postgres
|
||||
(:require
|
||||
[orchestra.core :refer [defn-spec]]
|
||||
[clojure.spec.alpha :as s]
|
||||
[dda.backup.core.domain :as cd]
|
||||
[dda.backup.management.domain :as domain]
|
||||
[dda.backup.core :as core]
|
||||
[dda.backup.infrastructure :as i]))
|
||||
|
||||
;; function drop-create-db() {
|
||||
;; psql -d template1 -h ${POSTGRES_SERVICE} -p ${POSTGRES_PORT} -U ${POSTGRES_USER} \
|
||||
;; --no-password -c "DROP DATABASE \"${POSTGRES_DB}\";"
|
||||
;; psql -d template1 -h ${POSTGRES_SERVICE} -p ${POSTGRES_PORT} -U ${POSTGRES_USER} \
|
||||
;; --no-password -c "CREATE DATABASE \"${POSTGRES_DB}\";"
|
||||
;; }
|
||||
|
||||
;; function create-pg-pass() {
|
||||
;; local pg_host=${POSTGRES_HOST:-localhost}
|
||||
|
||||
;; echo "${pg_host}:${POSTGRES_DB}:${POSTGRES_USER}:${POSTGRES_PASSWORD}" > /root/.pgpass
|
||||
;; echo "${POSTGRES_HOST}:template1:${POSTGRES_USER}:${POSTGRES_PASSWORD}" >> /root/.pgpass
|
||||
;; chmod 0600 /root/.pgpass
|
||||
;; }
|
||||
|
||||
;; function backup-roles() {
|
||||
;; local role_prefix="$1"; shift
|
||||
|
||||
;; if [ -z ${CERTIFICATE_FILE} ];
|
||||
;; then
|
||||
;; roles-unlock-command
|
||||
;; pg_dumpall -h ${POSTGRES_SERVICE} -p ${POSTGRES_PORT} -U${POSTGRES_USER} --no-password --roles-only | \
|
||||
;; grep ${role_prefix} | restic -r ${RESTIC_REPOSITORY}/${backup_pg_role_path} backup --stdin
|
||||
;; roles-forget-command
|
||||
;; else
|
||||
;; roles-unlock-command --cacert ${CERTIFICATE_FILE}
|
||||
;; pg_dumpall -h ${POSTGRES_SERVICE} -p ${POSTGRES_PORT} -U${POSTGRES_USER} --no-password --roles-only | \
|
||||
;; grep ${role_prefix} | restic -r ${RESTIC_REPOSITORY}/${backup_pg_role_path} backup --stdin --cacert ${CERTIFICATE_FILE}
|
||||
;; roles-forget-command --cacert ${CERTIFICATE_FILE}
|
||||
;; fi
|
||||
;; }
|
||||
|
||||
;; function backup-db-dump() {
|
||||
|
||||
;; if [ -z ${CERTIFICATE_FILE} ];
|
||||
;; then
|
||||
;; db-unlock-command
|
||||
;; pg_dump -d ${POSTGRES_DB} -h ${POSTGRES_SERVICE} -p ${POSTGRES_PORT} \
|
||||
;; -U ${POSTGRES_USER} --no-password --serializable-deferrable | \
|
||||
;; restic -r ${RESTIC_REPOSITORY}/${backup_pg_database_path} backup --stdin
|
||||
;; db-forget-command
|
||||
;; else
|
||||
;; db-unlock-command --cacert ${CERTIFICATE_FILE}
|
||||
;; pg_dump -d ${POSTGRES_DB} -h ${POSTGRES_SERVICE} -p ${POSTGRES_PORT} \
|
||||
;; -U ${POSTGRES_USER} --no-password --serializable-deferrable | \
|
||||
;; restic -r ${RESTIC_REPOSITORY}/${backup_pg_database_path} backup --stdin --cacert ${CERTIFICATE_FILE}
|
||||
;; db-forget-command --cacert ${CERTIFICATE_FILE}
|
||||
;; fi
|
||||
;; }
|
||||
|
||||
;; function restore-roles() {
|
||||
;; local snapshot_id="${1:-latest}"; shift
|
||||
|
||||
;; if [ -z ${CERTIFICATE_FILE} ];
|
||||
;; then
|
||||
;; roles-unlock-command
|
||||
;; restic -r ${RESTIC_REPOSITORY}/${backup_pg_role_path} dump ${snapshot_id} stdin | \
|
||||
;; psql -d template1 -h ${POSTGRES_SERVICE} -p ${POSTGRES_PORT} -U ${POSTGRES_USER} \
|
||||
;; --no-password
|
||||
;; else
|
||||
;; roles-unlock-command --cacert ${CERTIFICATE_FILE}
|
||||
;; restic -r ${RESTIC_REPOSITORY}/${backup_pg_role_path} dump ${snapshot_id} stdin --cacert ${CERTIFICATE_FILE} | \
|
||||
;; psql -d template1 -h ${POSTGRES_SERVICE} -p ${POSTGRES_PORT} -U ${POSTGRES_USER} \
|
||||
;; --no-password
|
||||
;; fi
|
||||
;; }
|
||||
|
||||
;; function restore-db() {
|
||||
;; local snapshot_id="${1:-latest}"; shift
|
||||
|
||||
;; if [ -z ${CERTIFICATE_FILE} ];
|
||||
;; then
|
||||
;; db-unlock-command
|
||||
;; restic -r ${RESTIC_REPOSITORY}/${backup_pg_database_path} dump ${snapshot_id} stdin | \
|
||||
;; psql -d ${POSTGRES_DB} -h ${POSTGRES_SERVICE} -p ${POSTGRES_PORT} -U ${POSTGRES_USER} \
|
||||
;; --no-password
|
||||
;; else
|
||||
;; db-unlock-command --cacert ${CERTIFICATE_FILE}
|
||||
;; restic -r ${RESTIC_REPOSITORY}/${backup_pg_database_path} dump ${snapshot_id} stdin --cacert ${CERTIFICATE_FILE} | \
|
||||
;; psql -d ${POSTGRES_DB} -h ${POSTGRES_SERVICE} -p ${POSTGRES_PORT} -U ${POSTGRES_USER} \
|
||||
;; --no-password
|
||||
;; fi
|
||||
;; }
|
Loading…
Reference in a new issue