เตรียม Prisma และแก้ error
เลือกขั้นตอนให้ตรงกับ Prisma major ที่ติดตั้ง
Generate หรือ emit ก่อน build
| Version ที่ติดตั้ง | พฤติกรรม Portal 1.0.0 |
|---|---|
| Prisma 2–7 | อ่าน bin ของแพ็กเกจและเรียก CLI ในโปรเจกต์ด้วย generate |
| Prisma 8 รวม RC | อ่าน bin ของแพ็กเกจแล้วใช้ contract emit |
| ไม่มีตัวบ่งชี้ Prisma | ข้ามการเตรียม Prisma |
| Version อื่นหรือไม่ถูกต้อง | หยุดพร้อม error ว่า version ไม่รองรับหรือไม่ถูกต้อง |
ตรวจ dependencies, schema มาตรฐาน, ค่า schema ใน package.json หรือ Prisma config ใน directory ที่เลือก เตรียมหลังติดตั้ง dependencies แม้ปิด build โดยใช้ environment ของโปรเจกต์ ให้ CLI อ่าน config เอง Portal ไม่ดาวน์โหลด CLI และไม่รัน migration, reset, seed, db init, db update หรือ db sign
ตรวจแพ็กเกจที่ติดตั้ง
รันใน checkout สำหรับพัฒนาที่ติดตั้ง dependencies แล้ว โดยใช้ directory เดียวกับที่เลือกใน Portal คำสั่งแสดงเฉพาะ version และ CLI entry ไม่แสดง environment secrets หากแพ็กเกจหายจริง ให้เพิ่ม prisma รุ่นที่เข้ากับ runtime/client ของแอป อัปเดตและ commit lockfile แล้วทดสอบ local อย่าเพิ่ม Prisma อีก version เพื่อให้ตรงกับ path ตายตัวของ Portal รุ่นเก่า
node -e "const p=require('./node_modules/prisma/package.json'); console.log({version:p.version, bin:p.bin})"ใช้ config ที่ตรงกับ major
Prisma 2–7 ใช้ schema และ client generator หาก path พิเศษให้ใช้ config ที่รุ่นที่ติดตั้งรองรับ ส่วน Prisma 8 ใช้ orm contract configuration Config รุ่นปัจจุบัน import definePrismaConfig จาก prisma/config คู่กับ defineConfig ของฐานข้อมูล แต่ release candidates ก่อนหน้าอาจใช้ imports ต่างกัน อย่าแทน config ของ RC ที่ทำงานอยู่ด้วยตัวอย่างใหม่โดยไม่ตรวจ exports ที่ติดตั้ง Config ไม่แก้การที่ Portal ตรวจ CLI path ผิด
เก็บ build script contract:emit ได้หากแอปต้องใช้ แต่ automatic preparation ของ Prisma 8 จะ emit ให้ก่อน หากไม่มี dependencies, schema settings, schema มาตรฐาน หรือ config ที่ระบุ Prisma ก็ไม่ต้องสร้าง config
Prisma 8 configuration · Contract emit
แก้ให้ตรงกับ error
| หลักฐาน | วิธีแก้ |
|---|---|
| CLI หายและไม่มีแพ็กเกจ prisma | เพิ่ม dependency ที่เข้ากับแอป ติดตั้งและ commit lockfile |
| 0.8.7/0.8.8 แจ้ง CLI หาย แต่มี dist/prisma.js ของ Prisma 8 | เป็นปัญหาความเข้ากันได้ของ Portal Portal 0.8.9 รองรับแล้ว ไม่ต้องเพิ่ม config |
| CLI entry ผิด/หาย หรือ version ไม่รองรับ | ตรวจ metadata, dependency versions, lockfile และ directory ที่เลือก |
| สร้าง client หรือ emit contract ไม่ผ่าน | เปิด deploy details ที่ปกปิด secrets ตรวจ schema/contract, config ตาม version และ environment ที่ต้องใช้ |
| Lockfile ไม่ตรง | ปรับ package.json และ lockfile ในเครื่องพัฒนาให้ตรงแล้ว commit ทั้งสอง |
| Candidate ล้ม แต่ release เดิมยัง active | ตรวจ service ที่ active แยก แล้ว retry หลังแก้ต้นเหตุ |
ไม่ส่ง DATABASE_URL, tokens หรือ environment ทั้งชุดในรายงาน error หากเตรียมไม่ผ่านจะหยุด candidate ก่อน activation ต้องตรวจ active release และ health แยกกัน