28 lines
1.5 KiB
Bash
Executable File
28 lines
1.5 KiB
Bash
Executable File
#!/usr/bin/env bash
|
||
set -euo pipefail
|
||
# shellcheck disable=SC1091
|
||
source "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/common.sh"
|
||
|
||
SQL_FILE="$REPO_DIR/mysql_script/ruoyi-vue-pro.sql"
|
||
[[ -f "$SQL_FILE" ]] || { echo "缺少初始化脚本: $SQL_FILE" >&2; exit 1; }
|
||
|
||
schema_exists="$(mysql_query information_schema "SELECT COUNT(*) FROM SCHEMATA WHERE SCHEMA_NAME='$ELDER_DB_NAME';")"
|
||
if [[ "$schema_exists" == "0" ]]; then
|
||
mysql_query '' "CREATE DATABASE \`$ELDER_DB_NAME\` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;" >/dev/null
|
||
fi
|
||
|
||
table_count="$(mysql_query information_schema "SELECT COUNT(*) FROM TABLES WHERE TABLE_SCHEMA='$ELDER_DB_NAME';")"
|
||
if [[ "$table_count" != "0" ]]; then
|
||
echo "数据库 $ELDER_DB_NAME 已有 $table_count 张表,为保护数据而停止初始化。"
|
||
exit 1
|
||
fi
|
||
|
||
mysql_bin="${MYSQL_BIN:-$(command -v mysql)}"
|
||
MYSQL_PWD="$ELDER_DB_PASSWORD" "$mysql_bin" --protocol=TCP --host="$ELDER_DB_HOST" --port="$ELDER_DB_PORT" \
|
||
--user="$ELDER_DB_USER" --default-character-set=utf8mb4 "$ELDER_DB_NAME" < "$SQL_FILE"
|
||
|
||
mysql_query "$ELDER_DB_NAME" 'UPDATE infra_file_config SET master = (id = 4) WHERE deleted = 0;' >/dev/null
|
||
table_count="$(mysql_query information_schema "SELECT COUNT(*) FROM TABLES WHERE TABLE_SCHEMA='$ELDER_DB_NAME';")"
|
||
admin_count="$(mysql_query "$ELDER_DB_NAME" "SELECT COUNT(*) FROM system_users WHERE username='admin' AND deleted=0 AND tenant_id=1;")"
|
||
echo "已初始化 $ELDER_DB_NAME:$table_count 张表,管理员账号 $admin_count 个。"
|