echo"Starting Apache anyway (app will show DB errors)..."
echo"Starting Apache anyway (app will show DB errors)..."
exec"$@"
exit 0
fi
# ─── Helper function for mysql commands ───
run_mysql(){
mysql -h"${DB_HOST}"-P"${DB_PORT}"-u"${DB_USER}"-p"${DB_PASS}"${MYSQL_FLAGS}"$@" 2>&1
}
run_mysql_silent(){
mysql -h"${DB_HOST}"-P"${DB_PORT}"-u"${DB_USER}"-p"${DB_PASS}"${MYSQL_FLAGS}-N"$@" 2>/dev/null
}
# ─── Create Database if not exists ───
echo""
echo"Ensuring database '${DB_NAME}' exists..."
mysql -h"${DB_HOST}"-P"${DB_PORT}"-u"${DB_USER}"-p"${DB_PASS}"-e"CREATE DATABASE IF NOT EXISTS \`${DB_NAME}\` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;" 2>/dev/null
run_mysql -e"CREATE DATABASE IF NOT EXISTS \`${DB_NAME}\` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
echo"✅ Database ensured."
# ─── Run Schema if tables don't exist ───
TABLE_COUNT=$(mysql -h"${DB_HOST}"-P"${DB_PORT}"-u"${DB_USER}"-p"${DB_PASS}"-N-e"SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA='${DB_NAME}' AND TABLE_TYPE='BASE TABLE';" 2>/dev/null)
TABLE_COUNT=$(run_mysql_silent -e"SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA='${DB_NAME}' AND TABLE_TYPE='BASE TABLE';"||echo"0")
echo"Current table count: ${TABLE_COUNT}"
if["${TABLE_COUNT}"-lt"70"] 2>/dev/null;then
echo"Running schema migration (expected 73 tables, found ${TABLE_COUNT})..."
if[-f"/var/www/html/database/schema.sql"];then
mysql -h"${DB_HOST}"-P"${DB_PORT}"-u"${DB_USER}"-p"${DB_PASS}""${DB_NAME}" < /var/www/html/database/schema.sql 2>&1
# Try multiple possible paths for schema.sql
SCHEMA_FILE=""
for path in"/var/www/html/database/schema.sql""/var/www/html/public/../database/schema.sql""/var/www/html/schema.sql";do
if[-f"$path"];then
SCHEMA_FILE="$path"
break
fi
done
if[-n"${SCHEMA_FILE}"];then
echo"Found schema at: ${SCHEMA_FILE}"
run_mysql "${DB_NAME}" < "${SCHEMA_FILE}"
echo"✅ Schema applied."
# Verify
NEW_COUNT=$(run_mysql_silent -e"SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA='${DB_NAME}' AND TABLE_TYPE='BASE TABLE';"||echo"0")
echo"Tables after migration: ${NEW_COUNT}"
else
echo"⚠️ No schema.sql found at /var/www/html/database/schema.sql"
echo" Skipping schema creation."
echo"❌ schema.sql not found! Searched:"
echo" /var/www/html/database/schema.sql"
echo""
echo" Files in /var/www/html/database/:"
ls-la /var/www/html/database/ 2>/dev/null ||echo" (directory does not exist)"
echo""
echo" Files in /var/www/html/:"
ls-la /var/www/html/ 2>/dev/null | head-20
fi
# Run seed data
if[-f"/var/www/html/database/seed.sql"];then
echo"Running seed data..."
mysql -h"${DB_HOST}"-P"${DB_PORT}"-u"${DB_USER}"-p"${DB_PASS}""${DB_NAME}" < /var/www/html/database/seed.sql 2>&1
SEED_FILE=""
for path in"/var/www/html/database/seed.sql""/var/www/html/seed.sql";do
if[-f"$path"];then
SEED_FILE="$path"
break
fi
done
if[-n"${SEED_FILE}"];then
echo"Running seed data from: ${SEED_FILE}"
run_mysql "${DB_NAME}" < "${SEED_FILE}"||echo"⚠️ Some seed data may already exist (duplicates skipped)."
echo"✅ Seed data applied."
fi
else
...
...
@@ -124,27 +147,30 @@ else
fi
# ─── Create Super Admin ───
SA_EXISTS=$(mysql -h"${DB_HOST}"-P"${DB_PORT}"-u"${DB_USER}"-p"${DB_PASS}"-N-e"SELECT COUNT(*) FROM \`${DB_NAME}\`.users WHERE role='super_admin';" 2>/dev/null||echo"0")
SA_EXISTS=$(run_mysql_silent -e"SELECT COUNT(*) FROM \`${DB_NAME}\`.users WHERE role='super_admin';"||echo"0")