elder-yudao-pro/deploy/local/initialize.sh

28 lines
1.5 KiB
Bash
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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