feat: support mysql database

This commit is contained in:
ttionya committed 2022-12-17 15:51:57 +08:00
1 parent 1bd45340f8
commit a6bf6cfa20
2 files changed
+39 -1

No files matched your search

+16
View File
@@ -12,6 +12,8 @@ function backup_init() {
BACKUP_FILE_DB_SQLITE="${BACKUP_DIR}/db.${NOW}.sqlite3"
# backup vaultwarden database file (postgresql)
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_FILE_CONFIG="${BACKUP_DIR}/config.${NOW}.json"
# backup vaultwarden rsakey files
@@ -47,6 +49,19 @@ function backup_db_postgresql() {
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() {
color blue "backup vaultwarden config"
@@ -108,6 +123,7 @@ function backup() {
case "${DB_TYPE}" in
SQLITE) backup_db_sqlite ;;
POSTGRESQL) backup_db_postgresql ;;
MYSQL) backup_db_mysql ;;
esac
backup_config
+23 -1
View File
@@ -326,7 +326,9 @@ function init_env() {
color yellow "DB_TYPE: ${DB_TYPE}"
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
color yellow "DATA_DB: ${DATA_DB}"
fi
@@ -414,6 +416,26 @@ function init_env_db() {
# 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
DB_TYPE="SQLITE"
fi