clouddreamai-cicd-setup 1.5.31 → 1.5.32

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.31",
3
+ "version": "1.5.32",
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",
@@ -348,7 +348,7 @@ find_db_client() {
348
348
  command -v "$CLIENT" 2>/dev/null
349
349
  }
350
350
 
351
- # 创建数据库函数
351
+ # 创建数据库函数(使用 SSH root 权限通过 sudo 执行)
352
352
  create_database() {
353
353
  local DB_HOST=$1
354
354
  local DB_PORT=$2
@@ -360,7 +360,7 @@ create_database() {
360
360
  return
361
361
  fi
362
362
 
363
- echo "检查并创建数据库: $DB_NAME"
363
+ echo "检查并创建数据库: $DB_NAME (用户: $DB_USER)"
364
364
 
365
365
  if [ "$DB_TYPE" = "pgsql" ]; then
366
366
  local PSQL_CMD=$(find_db_client "psql")
@@ -368,28 +368,59 @@ create_database() {
368
368
  echo "❌ 未找到 psql 客户端,跳过数据库创建"
369
369
  return
370
370
  fi
371
- export PGPASSWORD="$DB_PASS"
372
- if $PSQL_CMD -h "$DB_HOST" -p "$DB_PORT" -U "$DB_USER" -lqt | cut -d \| -f 1 | grep -qw "$DB_NAME"; then
371
+
372
+ # 使用 sudo -u postgres 执行,利用 peer 认证无需密码
373
+ # 检查并创建用户
374
+ if ! sudo -u postgres $PSQL_CMD -tAc "SELECT 1 FROM pg_roles WHERE rolname='$DB_USER'" | grep -q 1; then
375
+ echo "创建用户 $DB_USER..."
376
+ sudo -u postgres $PSQL_CMD -c "CREATE USER \"$DB_USER\" WITH PASSWORD '$DB_PASS';"
377
+ echo "✓ 用户 $DB_USER 创建成功"
378
+ else
379
+ echo "✓ 用户 $DB_USER 已存在"
380
+ fi
381
+
382
+ # 检查并创建数据库
383
+ if sudo -u postgres $PSQL_CMD -lqt | cut -d \| -f 1 | grep -qw "$DB_NAME"; then
373
384
  echo "✓ 数据库 $DB_NAME 已存在"
374
385
  else
375
386
  echo "创建数据库 $DB_NAME..."
376
- $PSQL_CMD -h "$DB_HOST" -p "$DB_PORT" -U "$DB_USER" -c "CREATE DATABASE \"$DB_NAME\";"
387
+ sudo -u postgres $PSQL_CMD -c "CREATE DATABASE \"$DB_NAME\" OWNER \"$DB_USER\";"
377
388
  echo "✓ 数据库 $DB_NAME 创建成功"
378
389
  fi
379
- unset PGPASSWORD
390
+
391
+ # 授予权限
392
+ sudo -u postgres $PSQL_CMD -c "GRANT ALL PRIVILEGES ON DATABASE \"$DB_NAME\" TO \"$DB_USER\";"
393
+
380
394
  elif [ "$DB_TYPE" = "mysql" ]; then
381
395
  local MYSQL_CMD=$(find_db_client "mysql")
382
396
  if [ -z "$MYSQL_CMD" ]; then
383
397
  echo "❌ 未找到 mysql 客户端,跳过数据库创建"
384
398
  return
385
399
  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
400
+
401
+ # MySQL 使用 root 无密码本地连接(宝塔默认配置)
402
+ # 检查并创建用户和数据库
403
+ if ! $MYSQL_CMD -u root -e "SELECT 1 FROM mysql.user WHERE user='$DB_USER'" 2>/dev/null | grep -q 1; then
404
+ echo "创建用户 $DB_USER..."
405
+ $MYSQL_CMD -u root -e "CREATE USER '$DB_USER'@'localhost' IDENTIFIED BY '$DB_PASS';"
406
+ $MYSQL_CMD -u root -e "CREATE USER '$DB_USER'@'%' IDENTIFIED BY '$DB_PASS';"
407
+ echo "✓ 用户 $DB_USER 创建成功"
408
+ else
409
+ echo "✓ 用户 $DB_USER 已存在"
410
+ fi
411
+
412
+ if $MYSQL_CMD -u root -e "SHOW DATABASES" | grep -qw "$DB_NAME"; then
387
413
  echo "✓ 数据库 $DB_NAME 已存在"
388
414
  else
389
415
  echo "创建数据库 $DB_NAME..."
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;"
416
+ $MYSQL_CMD -u root -e "CREATE DATABASE \`$DB_NAME\` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
391
417
  echo "✓ 数据库 $DB_NAME 创建成功"
392
418
  fi
419
+
420
+ # 授予权限
421
+ $MYSQL_CMD -u root -e "GRANT ALL PRIVILEGES ON \`$DB_NAME\`.* TO '$DB_USER'@'localhost';"
422
+ $MYSQL_CMD -u root -e "GRANT ALL PRIVILEGES ON \`$DB_NAME\`.* TO '$DB_USER'@'%';"
423
+ $MYSQL_CMD -u root -e "FLUSH PRIVILEGES;"
393
424
  fi
394
425
  }
395
426