This actually runs now :-o
This commit is contained in:
@@ -1,12 +1,40 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
mysql -uroot -p -hquinn < ZXDB/ZXDB_mysql.sql
|
# Parse connection details from ZXDB_URL in .env
|
||||||
{ 1 ↵ git:‹feat/zxdb ✗› v22.21.1
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||||
|
ENV_FILE="$SCRIPT_DIR/../.env"
|
||||||
|
|
||||||
|
if [ ! -f "$ENV_FILE" ]; then
|
||||||
|
echo "Error: .env file not found at $ENV_FILE" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
ZXDB_URL=$(grep '^ZXDB_URL=' "$ENV_FILE" | cut -d= -f2-)
|
||||||
|
if [ -z "$ZXDB_URL" ]; then
|
||||||
|
echo "Error: ZXDB_URL not set in .env" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Unescape backslash-escaped characters (e.g. \$ -> $)
|
||||||
|
ZXDB_URL=$(echo "$ZXDB_URL" | sed 's/\\\(.\)/\1/g')
|
||||||
|
|
||||||
|
# Extract user, password, host, port, database from mysql://user:pass@host:port/db
|
||||||
|
DB_USER=$(echo "$ZXDB_URL" | sed -n 's|^mysql://\([^:]*\):.*|\1|p')
|
||||||
|
DB_PASS=$(echo "$ZXDB_URL" | sed -n 's|^mysql://[^:]*:\([^@]*\)@.*|\1|p')
|
||||||
|
DB_HOST=$(echo "$ZXDB_URL" | sed -n 's|^mysql://[^@]*@\([^:]*\):.*|\1|p')
|
||||||
|
DB_PORT=$(echo "$ZXDB_URL" | sed -n 's|^mysql://[^@]*@[^:]*:\([0-9]*\)/.*|\1|p')
|
||||||
|
DB_NAME=$(echo "$ZXDB_URL" | sed -n 's|^mysql://[^/]*/\(.*\)|\1|p')
|
||||||
|
|
||||||
|
MYSQL_ARGS="-u${DB_USER} -p${DB_PASS} -h${DB_HOST} -P${DB_PORT}"
|
||||||
|
|
||||||
|
echo "DROP DATABASE IF EXISTS \`${DB_NAME}\`; CREATE DATABASE \`${DB_NAME}\`;" | mysql $MYSQL_ARGS
|
||||||
|
mysql $MYSQL_ARGS < ZXDB/ZXDB_mysql.sql
|
||||||
|
{
|
||||||
echo "SET @OLD_SQL_MODE := @@SESSION.sql_mode;"
|
echo "SET @OLD_SQL_MODE := @@SESSION.sql_mode;"
|
||||||
echo "SET SESSION sql_mode := REPLACE(@@SESSION.sql_mode, 'ONLY_FULL_GROUP_BY', '');"
|
echo "SET SESSION sql_mode := REPLACE(@@SESSION.sql_mode, 'ONLY_FULL_GROUP_BY', '');"
|
||||||
cat ZXDB/scripts/ZXDB_help_search.sql
|
cat ZXDB/scripts/ZXDB_help_search.sql
|
||||||
echo "SET SESSION sql_mode := @OLD_SQL_MODE;"
|
echo "SET SESSION sql_mode := @OLD_SQL_MODE;"
|
||||||
echo "CREATE ROLE 'zxdb_readonly';"
|
# echo "CREATE ROLE IF NOT EXISTS 'zxdb_readonly';"
|
||||||
echo "GRANT SELECT, SHOW VIEW ON `zxdb`.* TO 'zxdb_readonly';"
|
# echo "GRANT SELECT, SHOW VIEW ON \`zxdb\`.* TO 'zxdb_readonly';"
|
||||||
} | mysql -uroot -p -hquinn zxdb
|
} | mysql --force $MYSQL_ARGS "$DB_NAME"
|
||||||
mysqldump --no-data -hquinn -uroot -p zxdb > ZXDB/ZXDB_mysql_STRUCTURE_ONLY.sql
|
mysqldump --no-data -uroot -p -h${DB_HOST} -P${DB_PORT} "$DB_NAME" > ZXDB/ZXDB_mysql_STRUCTURE_ONLY.sql
|
||||||
|
|||||||
Reference in New Issue
Block a user