feat: support mysql database
This commit is contained in:
2 files changed
+39
-1
No files matched your search
@@ -12,6 +12,8 @@ function backup_init() {
|
|||||||
BACKUP_FILE_DB_SQLITE="${BACKUP_DIR}/db.${NOW}.sqlite3"
|
BACKUP_FILE_DB_SQLITE="${BACKUP_DIR}/db.${NOW}.sqlite3"
|
||||||
# backup vaultwarden database file (postgresql)
|
# backup vaultwarden database file (postgresql)
|
||||||
BACKUP_FILE_DB_POSTGRESQL="${BACKUP_DIR}/db.${NOW}.dump"
|
BACKUP_FILE_DB_POSTGRESQL="${BACKUP_DIR}/db.${NOW}.dump"
|
||||||
|
# backup vaultwarden database file (mysql)
|
||||||
|
BACKUP_FILE_DB_MYSQL="${BACKUP_DIR}/db.${NOW}.sql"
|
||||||
# backup vaultwarden config file
|
# backup vaultwarden config file
|
||||||
BACKUP_FILE_CONFIG="${BACKUP_DIR}/config.${NOW}.json"
|
BACKUP_FILE_CONFIG="${BACKUP_DIR}/config.${NOW}.json"
|
||||||
# backup vaultwarden rsakey files
|
# backup vaultwarden rsakey files
|
||||||
@@ -47,6 +49,19 @@ function backup_db_postgresql() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function backup_db_mysql() {
|
||||||
|
color blue "backup vaultwarden mysql database"
|
||||||
|
|
||||||
|
mysqldump -h "${MYSQL_HOST}" -P "${MYSQL_PORT}" -u "${MYSQL_USERNAME}" -p"${MYSQL_PASSWORD}" "${MYSQL_DATABASE}" > "${BACKUP_FILE_DB_MYSQL}"
|
||||||
|
if [[ $? != 0 ]]; then
|
||||||
|
color red "backup vaultwarden postgresql database failed"
|
||||||
|
|
||||||
|
send_mail_content "FALSE" "Backup failed at $(date +"%Y-%m-%d %H:%M:%S %Z"). Reason: Backup postgresql database failed."
|
||||||
|
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
function backup_config() {
|
function backup_config() {
|
||||||
color blue "backup vaultwarden config"
|
color blue "backup vaultwarden config"
|
||||||
|
|
||||||
@@ -108,6 +123,7 @@ function backup() {
|
|||||||
case "${DB_TYPE}" in
|
case "${DB_TYPE}" in
|
||||||
SQLITE) backup_db_sqlite ;;
|
SQLITE) backup_db_sqlite ;;
|
||||||
POSTGRESQL) backup_db_postgresql ;;
|
POSTGRESQL) backup_db_postgresql ;;
|
||||||
|
MYSQL) backup_db_mysql ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
backup_config
|
backup_config
|
||||||
|
|||||||
+23
-1
@@ -326,7 +326,9 @@ function init_env() {
|
|||||||
color yellow "DB_TYPE: ${DB_TYPE}"
|
color yellow "DB_TYPE: ${DB_TYPE}"
|
||||||
|
|
||||||
if [[ "${DB_TYPE}" == "POSTGRESQL" ]]; then
|
if [[ "${DB_TYPE}" == "POSTGRESQL" ]]; then
|
||||||
color yellow "DB_URL: ${PG_HOST}:${PG_PORT}:${PG_DBNAME}:${PG_USERNAME}:***(${#PG_PASSWORD} Chars)"
|
color yellow "DB_URL: postgresql://${PG_USERNAME}:***(${#PG_PASSWORD} Chars)@${PG_HOST}:${PG_PORT}/${PG_DBNAME}"
|
||||||
|
elif [[ "${DB_TYPE}" == "MYSQL" ]]; then
|
||||||
|
color yellow "DB_URL: mysql://${MYSQL_USERNAME}:***(${#MYSQL_PASSWORD} Chars)@${MYSQL_HOST}:${MYSQL_PORT}/${MYSQL_DATABASE}"
|
||||||
else
|
else
|
||||||
color yellow "DATA_DB: ${DATA_DB}"
|
color yellow "DATA_DB: ${DATA_DB}"
|
||||||
fi
|
fi
|
||||||
@@ -414,6 +416,26 @@ function init_env_db() {
|
|||||||
|
|
||||||
# PG_PASSWORD
|
# PG_PASSWORD
|
||||||
get_env PG_PASSWORD
|
get_env PG_PASSWORD
|
||||||
|
elif [[ "${DB_TYPE^^}" == "MYSQL" ]]; then # mysql
|
||||||
|
DB_TYPE="MYSQL"
|
||||||
|
|
||||||
|
# MYSQL_HOST
|
||||||
|
get_env MYSQL_HOST
|
||||||
|
|
||||||
|
# MYSQL_PORT
|
||||||
|
get_env MYSQL_PORT
|
||||||
|
MYSQL_PORT="${MYSQL_PORT:-"3306"}"
|
||||||
|
|
||||||
|
# MYSQL_DATABASE
|
||||||
|
get_env MYSQL_DATABASE
|
||||||
|
MYSQL_DATABASE="${MYSQL_DATABASE:-"vaultwarden"}"
|
||||||
|
|
||||||
|
# MYSQL_USERNAME
|
||||||
|
get_env MYSQL_USERNAME
|
||||||
|
MYSQL_USERNAME="${MYSQL_USERNAME:-"vaultwarden"}"
|
||||||
|
|
||||||
|
# MYSQL_PASSWORD
|
||||||
|
get_env MYSQL_PASSWORD
|
||||||
else # sqlite
|
else # sqlite
|
||||||
DB_TYPE="SQLITE"
|
DB_TYPE="SQLITE"
|
||||||
fi
|
fi
|
||||||
|
|||||||
Reference in new issue
Block a user