การ Import ข้อมูลด้วย CSV

บทนี้แนะนำ 2 วิธีในการ import ข้อมูลจาก CSV เข้า database


วิธีที่ 1: psql \copy command

เหมาะสำหรับ: GitHub Codespaces หรือเครื่องที่มี psql

ขั้นตอน

  1. เตรียมไฟล์ 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
  1. (Codespaces only) โหลด environment variables จาก .env ก่อน:
export $(cat .env | xargs)
  1. รันคำสั่ง 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

ขั้นตอน

  1. เข้า Supabase Dashboard แล้วไปที่ Table Editor
  1. เลือกตารางที่ต้องการ (1) > คลิก Insert (2) > เลือก Import data from CSV (3)
  1. ลากไฟล์ CSV มาวาง หรือคลิก browse เพื่อเลือกไฟล์
  1. คลิก 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 ก่อน import user_roles

สรุป

วิธีเหมาะสำหรับ
psql \copyCodespaces, Server
Supabase DashboardLocal + Supabase