mirror of
https://github.com/tiredofit/docker-db-backup.git
synced 2025-12-21 13:23:12 +01:00
fix: #262 Add option for DB_AUTH in PGSQL
This commit is contained in:
@@ -156,7 +156,7 @@ Be sure to view the following repositories to understand all the customizable op
|
|||||||
|
|
||||||
| Parameter | Description | Default | `_FILE` |
|
| Parameter | Description | Default | `_FILE` |
|
||||||
| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ------- |
|
| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ------- |
|
||||||
| `DB_AUTH` | (Mongo Only - Optional) Authentication Database | | |
|
| `DB_AUTH` | (Mongo/PGSQL Only - Optional) Authentication Database | | |
|
||||||
| `DB_TYPE` | Type of DB Server to backup `couch` `influx` `mysql` `mssql` `pgsql` `mongo` `redis` `sqlite3` | | |
|
| `DB_TYPE` | Type of DB Server to backup `couch` `influx` `mysql` `mssql` `pgsql` `mongo` `redis` `sqlite3` | | |
|
||||||
| `DB_HOST` | Server Hostname e.g. `mariadb`. For `sqlite3`, full path to DB file e.g. `/backup/db.sqlite3` | | x |
|
| `DB_HOST` | Server Hostname e.g. `mariadb`. For `sqlite3`, full path to DB file e.g. `/backup/db.sqlite3` | | x |
|
||||||
| `DB_NAME` | Schema Name e.g. `database` or `ALL` to backup all databases the user has access to. Backup multiple by separating with commas eg `db1,db2` | | x |
|
| `DB_NAME` | Schema Name e.g. `database` or `ALL` to backup all databases the user has access to. Backup multiple by separating with commas eg `db1,db2` | | x |
|
||||||
@@ -205,7 +205,7 @@ Your Organization will be mapped to `DB_USER` and your root token will need to b
|
|||||||
| `MYSQL_SINGLE_TRANSACTION` | Backup in a single transaction with MySQL / MariaDB | `TRUE` | |
|
| `MYSQL_SINGLE_TRANSACTION` | Backup in a single transaction with MySQL / MariaDB | `TRUE` | |
|
||||||
| `MYSQL_STORED_PROCEDURES` | Backup stored procedures with MySQL / MariaDB | `TRUE` | |
|
| `MYSQL_STORED_PROCEDURES` | Backup stored procedures with MySQL / MariaDB | `TRUE` | |
|
||||||
| `MYSQL_ENABLE_TLS` | Enable TLS functionality for MySQL client | `FALSE` | |
|
| `MYSQL_ENABLE_TLS` | Enable TLS functionality for MySQL client | `FALSE` | |
|
||||||
| `MYSQL_TLS_VERIFY` | (optional) If using TLS (by means of MYSQL*TLS*\* variables) verify remote host | `FALSE` | |
|
| `MYSQL_TLS_VERIFY` | (optional) If using TLS (by means of MYSQL_TLS_* variables) verify remote host | `FALSE` | |
|
||||||
| `MYSQL_TLS_VERSION` | What TLS `v1.1` `v1.2` `v1.3` version to utilize | `TLSv1.1,TLSv1.2,TLSv1.3` | |
|
| `MYSQL_TLS_VERSION` | What TLS `v1.1` `v1.2` `v1.3` version to utilize | `TLSv1.1,TLSv1.2,TLSv1.3` | |
|
||||||
| `MYSQL_TLS_CA_FILE` | Filename to load custom CA certificate for connecting via TLS | `/etc/ssl/cert.pem` | x |
|
| `MYSQL_TLS_CA_FILE` | Filename to load custom CA certificate for connecting via TLS | `/etc/ssl/cert.pem` | x |
|
||||||
| `MYSQL_TLS_CERT_FILE` | Filename to load client certificate for connecting via TLS | | x |
|
| `MYSQL_TLS_CERT_FILE` | Filename to load client certificate for connecting via TLS | | x |
|
||||||
|
|||||||
@@ -298,8 +298,12 @@ backup_mysql() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
backup_pgsql() {
|
backup_pgsql() {
|
||||||
export PGPASSWORD=${DB_PASS}
|
export PGPASSWORD=${DB_PASS}
|
||||||
authdb=${DB_USER}
|
if [ -n "${DB_AUTH}" ] ; then
|
||||||
|
authdb=${DB_AUTH}
|
||||||
|
else
|
||||||
|
authdb=${DB_USER}
|
||||||
|
fi
|
||||||
if [ "${DB_NAME,,}" = "all" ] ; then
|
if [ "${DB_NAME,,}" = "all" ] ; then
|
||||||
print_debug "Preparing to back up all databases"
|
print_debug "Preparing to back up all databases"
|
||||||
db_names=$(psql -h ${DB_HOST} -U ${DB_USER} -p ${DB_PORT} -d ${authdb} -c 'COPY (SELECT datname FROM pg_database WHERE datistemplate = false) TO STDOUT;' )
|
db_names=$(psql -h ${DB_HOST} -U ${DB_USER} -p ${DB_PORT} -d ${authdb} -c 'COPY (SELECT datname FROM pg_database WHERE datistemplate = false) TO STDOUT;' )
|
||||||
@@ -341,7 +345,7 @@ backup_pgsql() {
|
|||||||
pre_dbbackup all
|
pre_dbbackup all
|
||||||
print_notice "Dumping all PostgreSQL databases: '$(echo ${db_names} | xargs | tr ' ' ',')' ${compression_string}"
|
print_notice "Dumping all PostgreSQL databases: '$(echo ${db_names} | xargs | tr ' ' ',')' ${compression_string}"
|
||||||
tmp_db_names=$(psql -h ${DB_HOST} -U ${DB_USER} -p ${DB_PORT} -d ${authdb} -c 'COPY (SELECT datname FROM pg_database WHERE datistemplate = false) TO STDOUT;' )
|
tmp_db_names=$(psql -h ${DB_HOST} -U ${DB_USER} -p ${DB_PORT} -d ${authdb} -c 'COPY (SELECT datname FROM pg_database WHERE datistemplate = false) TO STDOUT;' )
|
||||||
for r_db_name in $(echo $db_names | xargs); do
|
for r_db_name in $(echo $db_names | xargs); do
|
||||||
tmp_db_names=$(echo "$tmp_db_names" | xargs | sed "s|${r_db_name}||g" )
|
tmp_db_names=$(echo "$tmp_db_names" | xargs | sed "s|${r_db_name}||g" )
|
||||||
done
|
done
|
||||||
sleep 5
|
sleep 5
|
||||||
|
|||||||
Reference in New Issue
Block a user