#!/usr/bin/env bash # 幂等落库:36 表 DDL + appcodes 注入(MariaDB 10.x,显式 TCP,禁 unix_socket) set -euo pipefail APP_HOME="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" DB_HOST="${PBLS_DB_HOST:-127.0.0.1}" DB_PORT="${PBLS_DB_PORT:-3306}" DB_USER="${PBLS_DB_USER:-}" DB_NAME="${PBLS_DB_NAME:-pbls}" echo "[ddl] target tcp://${DB_HOST}:${DB_PORT}/${DB_NAME} (unix_socket disabled)" mysql --protocol=TCP -h "$DB_HOST" -P "$DB_PORT" -u "$DB_USER" ${PBLS_DB_PASSWORD:+-p"$PBLS_DB_PASSWORD"} \ -e "CREATE DATABASE IF NOT EXISTS \`$DB_NAME\` DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci;" mysql --protocol=TCP -h "$DB_HOST" -P "$DB_PORT" -u "$DB_USER" ${PBLS_DB_PASSWORD:+-p"$PBLS_DB_PASSWORD"} \ --default-character-set=utf8mb4 "$DB_NAME" < "$APP_HOME/scripts/ddl/pbls_tables.sql" TABLES=$(mysql --protocol=TCP -h "$DB_HOST" -P "$DB_PORT" -u "$DB_USER" ${PBLS_DB_PASSWORD:+-p"$PBLS_DB_PASSWORD"} -N -B -e \ "SELECT COUNT(*) FROM information_schema.tables WHERE table_schema='$DB_NAME' AND table_name LIKE 'pbl_%';") echo "[ddl] pbl_* tables in $DB_NAME = $TABLES (expect >= 36)" # appcodes 6+2 组幂等注入 PYTHONPATH="$(dirname "$APP_HOME")/modules:$APP_HOME/lib:${PYTHONPATH:-}" \ python3 -c "import sys; sys.path.insert(0,'$(dirname "$APP_HOME")/modules'); import pbl_appcodes; print(pbl_appcodes.inject_all())"