clouddreamai-cicd-setup 1.5.30 → 1.5.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "clouddreamai-cicd-setup",
3
- "version": "1.5.30",
3
+ "version": "1.5.31",
4
4
  "description": "CloudDreamAI GitLab CI/CD 自动配置工具 - 支持 NestJS/Vue/React 项目的一键 CI/CD 配置",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -328,6 +328,26 @@ EOF
328
328
  DB_ENABLED="{{DB_ENABLED}}" # 是否启用数据库自动创建: true/false
329
329
  DB_TYPE="{{DB_TYPE}}" # 数据库类型: pgsql/mysql
330
330
 
331
+ # 自动检测数据库客户端路径
332
+ find_db_client() {
333
+ local CLIENT=$1
334
+ # 常见路径:宝塔、系统默认、Docker 等
335
+ local PATHS=(
336
+ "/www/server/pgsql/bin/$CLIENT"
337
+ "/www/server/mysql/bin/$CLIENT"
338
+ "/usr/bin/$CLIENT"
339
+ "/usr/local/bin/$CLIENT"
340
+ )
341
+ for P in "${PATHS[@]}"; do
342
+ if [ -x "$P" ]; then
343
+ echo "$P"
344
+ return
345
+ fi
346
+ done
347
+ # 最后尝试 PATH 中查找
348
+ command -v "$CLIENT" 2>/dev/null
349
+ }
350
+
331
351
  # 创建数据库函数
332
352
  create_database() {
333
353
  local DB_HOST=$1
@@ -343,23 +363,31 @@ create_database() {
343
363
  echo "检查并创建数据库: $DB_NAME"
344
364
 
345
365
  if [ "$DB_TYPE" = "pgsql" ]; then
346
- # PostgreSQL
366
+ local PSQL_CMD=$(find_db_client "psql")
367
+ if [ -z "$PSQL_CMD" ]; then
368
+ echo "❌ 未找到 psql 客户端,跳过数据库创建"
369
+ return
370
+ fi
347
371
  export PGPASSWORD="$DB_PASS"
348
- if psql -h "$DB_HOST" -p "$DB_PORT" -U "$DB_USER" -lqt | cut -d \| -f 1 | grep -qw "$DB_NAME"; then
372
+ if $PSQL_CMD -h "$DB_HOST" -p "$DB_PORT" -U "$DB_USER" -lqt | cut -d \| -f 1 | grep -qw "$DB_NAME"; then
349
373
  echo "✓ 数据库 $DB_NAME 已存在"
350
374
  else
351
375
  echo "创建数据库 $DB_NAME..."
352
- psql -h "$DB_HOST" -p "$DB_PORT" -U "$DB_USER" -c "CREATE DATABASE \"$DB_NAME\";"
376
+ $PSQL_CMD -h "$DB_HOST" -p "$DB_PORT" -U "$DB_USER" -c "CREATE DATABASE \"$DB_NAME\";"
353
377
  echo "✓ 数据库 $DB_NAME 创建成功"
354
378
  fi
355
379
  unset PGPASSWORD
356
380
  elif [ "$DB_TYPE" = "mysql" ]; then
357
- # MySQL
358
- if mysql -h "$DB_HOST" -P "$DB_PORT" -u "$DB_USER" -p"$DB_PASS" -e "SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME='$DB_NAME'" | grep -q "$DB_NAME"; then
381
+ local MYSQL_CMD=$(find_db_client "mysql")
382
+ if [ -z "$MYSQL_CMD" ]; then
383
+ echo "❌ 未找到 mysql 客户端,跳过数据库创建"
384
+ return
385
+ fi
386
+ if $MYSQL_CMD -h "$DB_HOST" -P "$DB_PORT" -u "$DB_USER" -p"$DB_PASS" -e "SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME='$DB_NAME'" | grep -q "$DB_NAME"; then
359
387
  echo "✓ 数据库 $DB_NAME 已存在"
360
388
  else
361
389
  echo "创建数据库 $DB_NAME..."
362
- mysql -h "$DB_HOST" -P "$DB_PORT" -u "$DB_USER" -p"$DB_PASS" -e "CREATE DATABASE \`$DB_NAME\` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
390
+ $MYSQL_CMD -h "$DB_HOST" -P "$DB_PORT" -u "$DB_USER" -p"$DB_PASS" -e "CREATE DATABASE \`$DB_NAME\` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
363
391
  echo "✓ 数据库 $DB_NAME 创建成功"
364
392
  fi
365
393
  fi