chore(server): add helper script to run deploy_settings_const.sql
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -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"
|
||||||
Reference in New Issue
Block a user