Files
alla-vote/SEED_README.md
phaichayon d5ad7f841f commit
2026-04-17 23:26:17 +07:00

3.2 KiB

Seed Scripts for Employees

ไฟล์สำหรับ seed พนักงานจาก CSV

ไฟล์ที่สร้างขึ้น

1. src/db/seed-branches.ts

สร้าง branches ที่จำเป็นต้องใช้กับพนักงานจาก CSV

2. src/db/seed-emp.ts

อ่านพนักงานจากไฟล์ alla-emp.csv และ seed เข้า database

วิธีใช้งาน

ขั้นตอนที่ 1: Seed Branches

npx tsx src/db/seed-branches.ts

สคริปต์นี้จะสร้าง 3 สาขาที่ตรงกับ branch_id ใน CSV:

  • b6722de8-562b-4d51-8ad2-1f6df826a772 - สาขาหลัก (ที่ 1)
  • c76ce8ec-6062-4e48-9d22-0aaaa6be79b2 - สาขาหลัก (ที่ 2)
  • 8724a231-108b-4c74-a778-0eafd282edd4 - สาขาหลัก (ที่ 3)

ขั้นตอนที่ 2: Seed Employees

npx tsx src/db/seed-emp.ts

สคริปต์นี้จะ:

  • อ่านไฟล์ alla-emp.csv จาก project root
  • ตรวจสอบว่าทุก branch_id มีอยู่ใน database หรือไม่
  • ตรวจสอบพนักงานที่มีอยู่แล้ว (เพื่อหลีกเลี่ยง duplicate)
  • Insert พนักงานใหม่เป็น batch 50 คนต่อครั้ง
  • แสดงรายงานผล

ข้อมูลใน CSV

ไฟล์ alla-emp.csv มีโครงสร้างดังนี้:

id,employee_id,name,branch_id,pin
  • id: UUID ของพนักงาน
  • employee_id: รหัสพนักงาน (เช่น 00001, 01756, etc.)
  • name: ชื่อพนักงาน
  • branch_id: UUID ของสาขา
  • pin: PIN hash (SHA-256)

ข้อมูลสรุป

  • จำนวนพนักงานทั้งหมด: 424 คน
  • จำนวนสาขา: 3 สาขา
  • PIN เริ่มต้น: ทุกคนใช้ PIN เดียวกัน (hash ของ "1234")

การจัดการข้อผิดพลาด

กรณีไม่พบไฟล์ CSV

❌ CSV file not found: .../alla-emp.csv
   Please make sure alla-emp.csv is in the project root directory.

กรณีไม่พบ Branch

❌ Missing branches in database:
   - b6722de8-562b-4d51-8ad2-1f6df826a772
   ...
❌ Please run seed.ts first to create branches, or add the missing branches manually.

การใช้งานซ้ำ

หาก run seed-emp.ts ซ้ำ:

  • จะข้ามพนักงานที่มีอยู่แล้ว (based on ID)
  • เพิ่มเฉพาะพนักงานใหม่ที่ยังไม่มีใน database

หมายเหตุ

  • สคริปต์เหล่านี้แยกจาก seed.ts ดั้งเดิม
  • สามารถใช้ร่วมกับ seed.ts หรือแยกอิสระก็ได้
  • ไม่มีผลกระทบกับข้อมูล candidates, votes, หรือ settings