การ Import ข้อมูลด้วย CSV
บทนี้แนะนำ 2 วิธีในการ import ข้อมูลจาก CSV เข้า database
วิธีที่ 1: psql \copy command
เหมาะสำหรับ: GitHub Codespaces หรือเครื่องที่มี psql
ขั้นตอน
- เตรียมไฟล์ CSV โดยแถวแรกต้องเป็น header ที่ตรงกับชื่อ column:
id,name,email,createdAt
cuid1,John Doe,john@example.com,2026-01-01 00:00:00
cuid2,Jane Doe,jane@example.com,2026-01-02 00:00:00
- (Codespaces only) โหลด environment variables จาก
.envก่อน:
export $(cat .env | xargs)
- รันคำสั่ง import:
psql $DATABASE_URL -c "\copy \"User\" FROM 'users.csv' WITH CSV HEADER"
ตัวอย่างเพิ่มเติม
# Import ตาราง roles
psql $DATABASE_URL -c "\copy \"roles\" FROM 'roles.csv' WITH CSV HEADER"
# Import พร้อมระบุ encoding
psql $DATABASE_URL -c "\copy \"User\" FROM 'users.csv' WITH CSV HEADER ENCODING 'UTF8'"
💡 Tip: ชื่อตารางใน PostgreSQL เป็น case-sensitive ต้องใส่
\"TableName\"ถ้าชื่อมีตัวพิมพ์ใหญ่
วิธีที่ 2: Supabase Dashboard
เหมาะสำหรับ: Local Development ที่ใช้ Supabase
ขั้นตอน
- เข้า Supabase Dashboard แล้วไปที่ Table Editor

- เลือกตารางที่ต้องการ (1) > คลิก Insert (2) > เลือก Import data from CSV (3)

- ลากไฟล์ CSV มาวาง หรือคลิก browse เพื่อเลือกไฟล์

- คลิก Import data เพื่อ import ข้อมูล
ข้อควรระวัง
⚠️ Format ของ CSV:
- Header ต้องตรงกับชื่อ column ใน database
- Datetime ใช้ format:
YYYY-MM-DD HH:mm:ss- ห้ามมี special characters ใน header (ยกเว้น
-และ_)
⚠️ Foreign Keys:
- ถ้าตารางมี foreign key ต้อง import ตารางหลักก่อน
- เช่น import
rolesก่อน importuser_roles
สรุป
| วิธี | เหมาะสำหรับ |
|---|---|
| psql \copy | Codespaces, Server |
| Supabase Dashboard | Local + Supabase |