3.2 KiB
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