deployment_files
This commit is contained in:
Executable
+146
@@ -0,0 +1,146 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
# ========================================
|
||||
# MySQL Configuration
|
||||
# ========================================
|
||||
|
||||
MYSQL_USER="root"
|
||||
MYSQL_PASS="Root@1234"
|
||||
|
||||
# DB_NAME is passed in from entrypoint.sh (per-project, unique).
|
||||
# Fallback below only used if script is run standalone.
|
||||
DB_NAME="${DB_NAME:-<PRJ_DB_NAME>}"
|
||||
|
||||
SQL_DIR="${SQL_DIR:-/opt/database}"
|
||||
|
||||
echo "========================================"
|
||||
echo " Database Initialization"
|
||||
echo "========================================"
|
||||
echo "Database : ${DB_NAME}"
|
||||
echo "SQL Dir : ${SQL_DIR}"
|
||||
echo "========================================"
|
||||
|
||||
|
||||
# ========================================
|
||||
# Create Database
|
||||
# ========================================
|
||||
|
||||
echo "Creating database if not exists..."
|
||||
|
||||
mysql \
|
||||
-u"${MYSQL_USER}" \
|
||||
-p"${MYSQL_PASS}" \
|
||||
-e "CREATE DATABASE IF NOT EXISTS \`${DB_NAME}\`;"
|
||||
|
||||
echo "Database ready."
|
||||
|
||||
|
||||
# ========================================
|
||||
# Check Existing Tables
|
||||
# ========================================
|
||||
|
||||
echo "Checking database initialization..."
|
||||
|
||||
TABLE_COUNT=$(
|
||||
mysql \
|
||||
-u"${MYSQL_USER}" \
|
||||
-p"${MYSQL_PASS}" \
|
||||
-N -s \
|
||||
-e "SELECT COUNT(*)
|
||||
FROM information_schema.tables
|
||||
WHERE table_schema='${DB_NAME}';"
|
||||
)
|
||||
|
||||
echo "Existing tables: ${TABLE_COUNT}"
|
||||
|
||||
|
||||
# ========================================
|
||||
# Initialize Database
|
||||
# ========================================
|
||||
|
||||
if [ "${TABLE_COUNT}" -eq 0 ]; then
|
||||
|
||||
echo "Fresh database detected."
|
||||
echo "Searching SQL files in ${SQL_DIR}..."
|
||||
|
||||
# ------------------------------------
|
||||
# Import SQL files in FIXED order:
|
||||
# schema.sql (structure) MUST run before
|
||||
# data.sql (inserts), otherwise inserts
|
||||
# fail with "table doesn't exist".
|
||||
# ------------------------------------
|
||||
|
||||
if [ -d "${SQL_DIR}" ]; then
|
||||
|
||||
ORDERED_FILES=("schema.sql" "data.sql")
|
||||
IMPORTED_ANY=false
|
||||
|
||||
for FILE_NAME in "${ORDERED_FILES[@]}"; do
|
||||
|
||||
SQL_FILE="${SQL_DIR}/${FILE_NAME}"
|
||||
|
||||
if [ -f "${SQL_FILE}" ]; then
|
||||
|
||||
echo "----------------------------------------"
|
||||
echo "Importing: ${SQL_FILE}"
|
||||
echo "----------------------------------------"
|
||||
|
||||
mysql \
|
||||
-u"${MYSQL_USER}" \
|
||||
-p"${MYSQL_PASS}" \
|
||||
"${DB_NAME}" < "${SQL_FILE}"
|
||||
|
||||
echo "Imported successfully: ${SQL_FILE}"
|
||||
IMPORTED_ANY=true
|
||||
|
||||
else
|
||||
echo "Not found, skipping: ${SQL_FILE}"
|
||||
fi
|
||||
|
||||
done
|
||||
|
||||
# Import any other .sql files not in the fixed list
|
||||
OTHER_FILES=$(find "${SQL_DIR}" -maxdepth 1 -type f -name "*.sql" \
|
||||
! -name "schema.sql" ! -name "data.sql" | sort)
|
||||
|
||||
for SQL_FILE in ${OTHER_FILES}; do
|
||||
|
||||
echo "----------------------------------------"
|
||||
echo "Importing (extra): ${SQL_FILE}"
|
||||
echo "----------------------------------------"
|
||||
|
||||
mysql \
|
||||
-u"${MYSQL_USER}" \
|
||||
-p"${MYSQL_PASS}" \
|
||||
"${DB_NAME}" < "${SQL_FILE}"
|
||||
|
||||
echo "Imported successfully: ${SQL_FILE}"
|
||||
IMPORTED_ANY=true
|
||||
|
||||
done
|
||||
|
||||
if [ "${IMPORTED_ANY}" = false ]; then
|
||||
echo "No SQL files found."
|
||||
fi
|
||||
|
||||
else
|
||||
|
||||
echo "WARNING: SQL directory does not exist:"
|
||||
echo "${SQL_DIR}"
|
||||
|
||||
fi
|
||||
|
||||
echo "========================================"
|
||||
echo " Database initialization completed."
|
||||
echo "========================================"
|
||||
|
||||
else
|
||||
|
||||
echo "========================================"
|
||||
echo " Database already initialized."
|
||||
echo " Skipping SQL import."
|
||||
echo "========================================"
|
||||
|
||||
fi
|
||||
Reference in New Issue
Block a user