From 351510d500cd99ec68de57a6b44b191b480324ec Mon Sep 17 00:00:00 2001 From: adonis Date: Tue, 18 Aug 2026 17:57:22 +0330 Subject: [PATCH] chore(server): add helper script to run deploy_settings_const.sql Co-authored-by: Cursor --- database/sql/run_deploy_settings.sh | 60 +++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 database/sql/run_deploy_settings.sh diff --git a/database/sql/run_deploy_settings.sh b/database/sql/run_deploy_settings.sh new file mode 100644 index 0000000..88a654b --- /dev/null +++ b/database/sql/run_deploy_settings.sh @@ -0,0 +1,60 @@ +#!/usr/bin/env bash +# اجرای deploy_settings_const.sql روی یک یا چند دیتابیس — بدون کپی در Navicat. +# +# از ریشهٔ سرور: +# bash database/sql/run_deploy_settings.sh +# bash database/sql/run_deploy_settings.sh abaeigold +# bash database/sql/run_deploy_settings.sh abaeigold gholaktala +# +# اتصال از .env (DB_HOST / DB_PORT / DB_USERNAME / DB_PASSWORD). +# اگر نام DB ندهی، همان DB_DATABASE داخل .env استفاده می‌شود. +set -euo pipefail + +ROOT="$(cd "$(dirname "$0")/../.." && pwd)" +cd "$ROOT" + +SQL_FILE="${SQL_FILE:-database/sql/deploy_settings_const.sql}" + +read_env() { + grep "^${1}=" .env | cut -d= -f2- | tr -d '\r"' | head -1 +} + +DB_HOST=$(read_env DB_HOST) +DB_PORT=$(read_env DB_PORT) +DB_USERNAME=$(read_env DB_USERNAME) +DB_PASSWORD=$(read_env DB_PASSWORD) +DB_DATABASE=$(read_env DB_DATABASE) + +if [[ ! -f "$SQL_FILE" ]]; then + echo "ERROR: SQL file not found: $SQL_FILE" >&2 + exit 1 +fi + +if [[ -z "${DB_HOST:-}" || -z "${DB_USERNAME:-}" ]]; then + echo "ERROR: DB_HOST / DB_USERNAME missing in .env" >&2 + exit 1 +fi + +if [[ $# -gt 0 ]]; then + DBS=("$@") +else + if [[ -z "${DB_DATABASE:-}" ]]; then + echo "ERROR: no database name. Pass it as argument or set DB_DATABASE in .env" >&2 + exit 1 + fi + DBS=("$DB_DATABASE") +fi + +mysql_run() { + local db="$1" + mysql -h "$DB_HOST" -P "${DB_PORT:-3306}" -u "$DB_USERNAME" -p"$DB_PASSWORD" \ + --default-character-set=utf8mb4 "$db" +} + +for db in "${DBS[@]}"; do + echo "==> $SQL_FILE → $db @ $DB_HOST:${DB_PORT:-3306}" + mysql_run "$db" < "$SQL_FILE" + echo " done: $db" +done + +echo "==> all done"