eCourt-note/.claude/skills/sync-db/SKILL.md
DESKTOP-1R2VSQH\Lenovo ThinkPad E490 eddcec28c7 Add application codebase: PDF annotation for e-Court
Next.js 14 + Drizzle/PostgreSQL + SSE realtime sync — highlight,
freehand, comment, bookmark + ฟีเจอร์ต่อยอด F1–F19 (edit/move, undo/redo,
shapes, redaction, export PDF/CSV, reply, resolve, search, summary,
textbox, stamp, version history)

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-10 14:29:40 +07:00

1.9 KiB


name: sync-db description: Sync Drizzle schema ลง PostgreSQL container judes-note-db + seed ไฟล์ตัวอย่าง — ใช้หลังแก้ db/schema.ts หรือตอน setup ครั้งแรก

ขั้นตอน

  1. Push schema: รัน npx drizzle-kit push (อ่าน config จาก drizzle.config.ts) — รายงาน output จริง ถ้าชนของเดิมให้แสดงและถามผู้ใช้ก่อน destructive ทางเลือก
  2. Seed ตัวอย่าง (เฉพาะเมื่อตาราง files ว่าง): INSERT ไฟล์จาก public/samples/ โดย pdf_url = '/samples/<ชื่อไฟล์>' (ไฟล์และที่มาดูใน PLAN.md §0 ตาราง "ไฟล์ตัวอย่าง") — ใช้ SQL จาก README ถ้ามีแล้ว รันผ่าน docker exec judes-note-db psql -U postgres -c "..."
  3. รายงานผลแต่ละขั้นตามจริง — ขั้นไหนไม่ได้ทำบอกสาเหตุ อย่าเดา

ข้อควรระวัง

  • DATABASE_URL ชี้ที่ container judes-note-db (postgres:17-alpine, พอร์ต 54322 — ไม่ใช่ Supabase) — ถ้า container ไม่รันอยู่ ให้สั่ง docker start judes-note-db หรือแจ้งผู้ใช้ตามคำสั่ง docker run ใน README
  • ห้ามลบ volume judes-note-db-data เว้นแต่ผู้ใช้สั่งชัดเจน (มีข้อมูล annotation จริงหายได้)
  • ไม่ต้องตั้ง realtime publication/replica identity อีกต่อไป (SSE sync ผ่าน lib/annotate-events.ts ไม่ผ่าน DB trigger)