初始化哨兵改为 eb_system_admin 表,防止部分导入的库被误判为已初始化
This commit is contained in:
@@ -42,9 +42,10 @@ echo " MySQL is ready!"
|
|||||||
echo "==> Importing database schema..."
|
echo "==> Importing database schema..."
|
||||||
# 仅在空库(无任何业务表)时导入初始化 SQL,避免容器重启/线上更新代码时重置数据库。
|
# 仅在空库(无任何业务表)时导入初始化 SQL,避免容器重启/线上更新代码时重置数据库。
|
||||||
# 如需重置数据:docker compose down -v 清掉数据卷后重新启动即可触发导入。
|
# 如需重置数据:docker compose down -v 清掉数据卷后重新启动即可触发导入。
|
||||||
TABLE_COUNT=$(mysql -h "${DB_HOSTNAME:-mysql}" -u "${DB_USERNAME:-root}" -p"${DB_PASSWORD:-root}" -N -e "SELECT COUNT(*) FROM information_schema.tables WHERE table_schema='${DB_DATABASE:-crmeb_chat}';" 2>/dev/null || echo 0)
|
# 以 eb_system_admin(后台账号表,初始化 SQL 中较靠后)作为初始化完成的哨兵:部分导入的库不会被误判为已初始化
|
||||||
if [ "${TABLE_COUNT:-0}" != "0" ]; then
|
TABLE_SENTINEL=$(mysql -h "${DB_HOSTNAME:-mysql}" -u "${DB_USERNAME:-root}" -p"${DB_PASSWORD:-root}" -N -e "SELECT COUNT(*) FROM information_schema.tables WHERE table_schema='${DB_DATABASE:-crmeb_chat}' AND table_name='eb_system_admin';" 2>/dev/null || echo 0)
|
||||||
echo " Database already initialized (found ${TABLE_COUNT} tables), skipping import to protect existing data."
|
if [ "${TABLE_SENTINEL:-0}" != "0" ]; then
|
||||||
|
echo " Database already initialized (sentinel table found), skipping import to protect existing data."
|
||||||
else
|
else
|
||||||
echo " Empty database detected, importing crmeb_clean.sql..."
|
echo " Empty database detected, importing crmeb_clean.sql..."
|
||||||
mysql -h "${DB_HOSTNAME:-mysql}" -u "${DB_USERNAME:-root}" -p"${DB_PASSWORD:-root}" --default-character-set=utf8mb4 "${DB_DATABASE:-crmeb_chat}" < /var/www/html/public/install/crmeb_clean.sql 2>/dev/null && \
|
mysql -h "${DB_HOSTNAME:-mysql}" -u "${DB_USERNAME:-root}" -p"${DB_PASSWORD:-root}" --default-character-set=utf8mb4 "${DB_DATABASE:-crmeb_chat}" < /var/www/html/public/install/crmeb_clean.sql 2>/dev/null && \
|
||||||
|
|||||||
Reference in New Issue
Block a user