This commit is contained in:
@@ -15,7 +15,7 @@ FILE_SCANNER_ENABLED=true
|
||||
FINANCE_BOOTSTRAP_ENABLED=false
|
||||
FINANCE_BOOTSTRAP_PASSWORD=
|
||||
|
||||
APP_VERSION=1.0.0-preview.31
|
||||
APP_VERSION=1.0.0-preview.34
|
||||
UPDATE_CURRENT_VERSION_FILE=/opt/kaidi/current/VERSION
|
||||
FINANCE_UPDATE_ENABLED=true
|
||||
# Use either a stable direct asset base URL or the public Gitea latest-release API.
|
||||
|
||||
+29
-3
@@ -230,6 +230,31 @@ preflight_runtime_commands() {
|
||||
done
|
||||
}
|
||||
|
||||
mysql_client_bin() {
|
||||
local candidate
|
||||
if [ -n "${KAIDI_MYSQL_CLIENT:-}" ]; then
|
||||
case "$KAIDI_MYSQL_CLIENT" in
|
||||
*/*) [ -x "$KAIDI_MYSQL_CLIENT" ] && printf '%s\n' "$KAIDI_MYSQL_CLIENT" && return 0 ;;
|
||||
*) candidate=$(command -v "$KAIDI_MYSQL_CLIENT" 2>/dev/null || true); [ -n "$candidate" ] && printf '%s\n' "$candidate" && return 0 ;;
|
||||
esac
|
||||
return 1
|
||||
fi
|
||||
candidate=$(command -v mysql 2>/dev/null || command -v mariadb 2>/dev/null || true)
|
||||
if [ -n "$candidate" ]; then
|
||||
printf '%s\n' "$candidate"
|
||||
return 0
|
||||
fi
|
||||
for candidate in \
|
||||
/www/server/mysql/bin/mysql /www/server/mysql/bin/mariadb \
|
||||
/usr/bin/mysql /usr/bin/mariadb /usr/local/mysql/bin/mysql /opt/mysql/bin/mysql; do
|
||||
if [ -x "$candidate" ]; then
|
||||
printf '%s\n' "$candidate"
|
||||
return 0
|
||||
fi
|
||||
done
|
||||
return 1
|
||||
}
|
||||
|
||||
azul_arch() {
|
||||
case "${HOST_ARCH:-$(normalized_host_arch)}" in
|
||||
x86_64) printf x86 ;;
|
||||
@@ -617,8 +642,8 @@ preflight_database() {
|
||||
jdbc:mysql://*) ;;
|
||||
*) die "KAIDI_DB_URL must start with jdbc:mysql://" ;;
|
||||
esac
|
||||
client=$(command -v mysql || command -v mariadb || true)
|
||||
[ -n "$client" ] || die "A MySQL command-line client is required"
|
||||
client=$(mysql_client_bin || true)
|
||||
[ -n "$client" ] || die "A MySQL command-line client is required; set KAIDI_MYSQL_CLIENT or add mysql/mariadb to PATH"
|
||||
host=$(database_host)
|
||||
port=$(database_port)
|
||||
name=$(database_name)
|
||||
@@ -1000,7 +1025,8 @@ write_env_file "$CONFIG_ROOT/update.env" \
|
||||
KAIDI_DB_PORT "$(database_port)" \
|
||||
KAIDI_DB_NAME "$(database_name)" \
|
||||
KAIDI_DB_USERNAME "$DB_USERNAME" \
|
||||
KAIDI_DB_PASSWORD "$DB_PASSWORD"
|
||||
KAIDI_DB_PASSWORD "$DB_PASSWORD" \
|
||||
KAIDI_MYSQLDUMP_BIN "${KAIDI_MYSQLDUMP_BIN:-}"
|
||||
chmod 0600 "$CONFIG_ROOT/update.env"
|
||||
|
||||
install -m 0644 "$RELEASE_DIR/ops/kaidi-finance.service" /etc/systemd/system/kaidi-finance.service
|
||||
|
||||
+28
-3
@@ -575,6 +575,30 @@ application_state() {
|
||||
fi
|
||||
}
|
||||
|
||||
mysqldump_bin() {
|
||||
if [ -n "${KAIDI_MYSQLDUMP_BIN:-}" ]; then
|
||||
case "$KAIDI_MYSQLDUMP_BIN" in
|
||||
*/*) [ -x "$KAIDI_MYSQLDUMP_BIN" ] && printf '%s\n' "$KAIDI_MYSQLDUMP_BIN" && return 0 ;;
|
||||
*) candidate=$(command -v "$KAIDI_MYSQLDUMP_BIN" 2>/dev/null || true); [ -n "$candidate" ] && printf '%s\n' "$candidate" && return 0 ;;
|
||||
esac
|
||||
return 1
|
||||
fi
|
||||
candidate=$(command -v mysqldump 2>/dev/null || true)
|
||||
if [ -n "$candidate" ]; then
|
||||
printf '%s\n' "$candidate"
|
||||
return 0
|
||||
fi
|
||||
for candidate in \
|
||||
/www/server/mysql/bin/mysqldump /usr/bin/mysqldump \
|
||||
/usr/local/mysql/bin/mysqldump /opt/mysql/bin/mysqldump; do
|
||||
if [ -x "$candidate" ]; then
|
||||
printf '%s\n' "$candidate"
|
||||
return 0
|
||||
fi
|
||||
done
|
||||
return 1
|
||||
}
|
||||
|
||||
backup_database() {
|
||||
DATABASE_BACKUP=
|
||||
[ "${KAIDI_SKIP_DB_BACKUP:-false}" = "true" ] && return
|
||||
@@ -594,11 +618,12 @@ backup_database() {
|
||||
fail "Database backup failed"
|
||||
fi
|
||||
else
|
||||
command -v mysqldump >/dev/null 2>&1 || {
|
||||
dump_bin=$(mysqldump_bin || true)
|
||||
[ -n "$dump_bin" ] || {
|
||||
rm -f "$dump_file" "$backup_tmp"
|
||||
fail "mysqldump is required before installing an update"
|
||||
fail "mysqldump is required before installing an update; set KAIDI_MYSQLDUMP_BIN or install it in a standard MySQL bin directory"
|
||||
}
|
||||
if ! MYSQL_PWD=${KAIDI_DB_PASSWORD:-} mysqldump --single-transaction --routines --triggers \
|
||||
if ! MYSQL_PWD=${KAIDI_DB_PASSWORD:-} "$dump_bin" --single-transaction --routines --triggers \
|
||||
-h "${KAIDI_DB_HOST:-127.0.0.1}" -P "${KAIDI_DB_PORT:-3306}" \
|
||||
-u "${KAIDI_DB_USERNAME:-kaidi}" "${KAIDI_DB_NAME:-kaidi_finance}" > "$dump_file"; then
|
||||
rm -f "$dump_file" "$backup_tmp"
|
||||
|
||||
Reference in New Issue
Block a user