summaryrefslogtreecommitdiff
path: root/db/seeds_2/seed.ts
blob: 2a21fc6e15c97834f1d452406b46b1f8db77e169 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import { seedCompanies } from "./companySeed"
import { seedItems } from "./itmeSeed"
import { seedRfqData } from "./rfqSeed"
import { seedTasks } from "./taskSeed"
import { seedUsers } from "./userSeed"
import { seedVendors } from "./vendorSeed"

// 시드 데이터 수 중앙 관리
const SEED_COUNTS = {
  companies: 100,
  users: 100,
  items: {
    itemsPerCategory: 100
  },
  vendors: 100,
  tasks: 100,
  rfqs: 100
} as const;

async function runAllSeeds() {
  console.log("⏳ 전체 시드 실행 시작...")
  const start = Date.now()

  try {
    // 1. 먼저 독립적인 기본 데이터 생성
    await seedCompanies({ count: SEED_COUNTS.companies })
    console.log("✅ Companies 시드 완료")

    await seedUsers({ count: SEED_COUNTS.users })
    console.log("✅ Users 시드 완료")

    await seedItems({ itemsPerCategory: SEED_COUNTS.items.itemsPerCategory })
    console.log("✅ Items 시드 완료")

    // 2. FK 참조가 있는 데이터 생성
    await seedVendors({ count: SEED_COUNTS.vendors })
    console.log("✅ Vendors 시드 완료")

    await seedTasks({ count: SEED_COUNTS.tasks })
    console.log("✅ Tasks 시드 완료")

    // 3. 가장 많은 FK 참조가 있는 RFQ 마지막에 생성
    await seedRfqData({ count: SEED_COUNTS.rfqs })
    console.log("✅ RFQ 시드 완료")

    const end = Date.now()
    console.log(`✅ 모든 시드가 ${end - start}ms 만에 완료되었습니다.`)
    process.exit(0)
  } catch (err) {
    console.error("❌ 시드 실행 중 오류 발생:")
    console.error(err)
    process.exit(1)
  }
}

runAllSeeds()