#!/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 个。"