Files
hanarang-dashboard/backend/prisma/seed.ts
narang-ai 79135f24b0 feat(sprint-001): backend Nest.js + Prisma7 adapter setup, frontend Next.js UI
- Backend: NestJS + Prisma 7 (MariaDB adapter) scaffold
  - PrismaService with @prisma/adapter-mariadb driver
  - SistersService: SSH 상태 체크 with graceful fallback
  - HealthController: GET /health
  - 시드 스크립트: 자매 4명 초기 데이터
  - 테스트 5/5 pass

- Frontend: Next.js 16 + styled-components
  - styled-components SSR registry (next.config 컴파일러)
  - 다크 테마 글로벌 스타일 + 테마 토큰
  - SisterCard: glassmorphism 상태 카드 (온라인 pulse 애니메이션)
  - StatusBadge: 상태 표시 컴포넌트
  - Sidebar: 접이식 네비게이션
  - 대시보드 메인 페이지 (API 미연결 시 mock 데이터 fallback)
  - build 성공 확인

- DB credential 이랑이 대기 중
2026-04-04 11:06:44 +09:00

41 lines
1.1 KiB
TypeScript

import { PrismaClient } from '@prisma/client';
import { PrismaMariaDb } from '@prisma/adapter-mariadb';
import * as dotenv from 'dotenv';
dotenv.config();
const dbUrl = process.env.DATABASE_URL ?? '';
const adapter = new PrismaMariaDb(dbUrl);
const prisma = new PrismaClient({ adapter });
async function main() {
console.log('🌱 Seeding SisterConfig...');
const sisters = [
{ name: 'harang', ip: '10.10.10.112', user: 'harang', lxcId: 104 },
{ name: 'narang', ip: '10.10.10.216', user: 'narang', lxcId: 105 },
{ name: 'darang', ip: '10.10.10.136', user: 'darang', lxcId: 106 },
{ name: 'erang', ip: '10.10.10.163', user: 'erang', lxcId: 107 },
];
for (const sister of sisters) {
await prisma.sisterConfig.upsert({
where: { name: sister.name },
update: { ip: sister.ip, user: sister.user, lxcId: sister.lxcId },
create: sister,
});
console.log(`${sister.name} (${sister.ip})`);
}
console.log('✅ Seed complete');
}
main()
.catch((e) => {
console.error(e);
process.exit(1);
})
.finally(async () => {
await prisma.$disconnect();
});