57 lines
1.4 KiB
Bash
Executable File
57 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
|
# VI: Script seed database cho từng service riêng lẻ
|
|
|
|
set -e
|
|
|
|
SERVICE=$1
|
|
|
|
# VI: Xác thực tham số
|
|
if [ -z "$SERVICE" ]; then
|
|
echo "Cách dùng: $0 <tên-service>"
|
|
echo "Ví dụ: $0 iam-service"
|
|
exit 1
|
|
fi
|
|
|
|
# VI: Kiểm tra xem service có tồn tại không
|
|
if [ ! -d "services/$SERVICE" ]; then
|
|
echo "❌ Không tìm thấy service $SERVICE"
|
|
exit 1
|
|
fi
|
|
|
|
echo "🌱 Seed database cho $SERVICE..."
|
|
|
|
cd "services/$SERVICE"
|
|
|
|
# VI: Load biến môi trường (hybrid pattern - ĐỒNG BỘ với migrate.sh)
|
|
# VI: 1. Load shared env (JWT secrets, Redis config)
|
|
if [ -f "../../deployments/local/.env.local" ]; then
|
|
set -a
|
|
source ../../deployments/local/.env.local
|
|
set +a
|
|
fi
|
|
|
|
# VI: 2. Load service-specific env (DATABASE_URL, PORT, etc.)
|
|
if [ -f ".env.local" ]; then
|
|
set -a
|
|
source .env.local
|
|
set +a
|
|
fi
|
|
|
|
# VI: Kiểm tra DATABASE_URL đã được thiết lập chưa
|
|
if [ -z "$DATABASE_URL" ]; then
|
|
echo "⚠️ DATABASE_URL chưa được thiết lập. Vui lòng kiểm tra file .env.local:"
|
|
echo " - Shared config: ../../deployments/local/.env.local"
|
|
echo " - Service config: .env.local"
|
|
exit 1
|
|
fi
|
|
|
|
# VI: Generate Prisma client trước khi seed (đảm bảo client updated)
|
|
echo "📦 Generate Prisma client..."
|
|
pnpm prisma generate
|
|
|
|
# VI: Chạy seed script
|
|
echo "🌱 Chạy seed data..."
|
|
pnpm prisma:seed
|
|
|
|
echo "✅ Database đã được seed thành công!"
|