หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
ใช้การเปลี่ยนแปลงเอนทิตี Rayfin กับฐานข้อมูลโดยใช้ rayfin up หรือ rayfin up db applyและตรวจสอบว่าสคีมาได้ถึงเซิร์ฟเวอร์แล้ว
การแก้ไขคลาสไม่ได้ rayfin/data/ เปลี่ยนฐานข้อมูลที่ติดตั้งเอง Rayfin จะอ่านเอนทิตีของคุณและสร้างการกําหนดค่า Data API Builder (DAB) เฉพาะเมื่อคุณกําหนดการเปลี่ยนแปลงอย่างชัดเจนเท่านั้น
ใช้ rayfin up สําหรับอัปเดตแอปพลิเคชัน
เรียกใช้npx rayfin upเมื่อใดก็ตามที่คุณต้องการปรับใช้การเปลี่ยนแปลงเอนทิตีล่าสุดไปยังแอป Fabric:
npx rayfin up
คำสั่งนี้:
- ซิงโครไนซ์การตั้งค่ารันไทม์
- ใช้สคีมาฐานข้อมูลที่สร้างจากตัวตกแต่งใน
rayfin/data/. - สร้างและปรับใช้เนื้อหาแบบคงที่เมื่อ
staticHostingเปิดใช้งาน
รันคําสั่งหลังจากทุกครั้งที่มีการเปลี่ยนแปลงไฟล์ใน rayfin/data/. หลังจากการปรับใช้ครั้งแรก การรันถัดไปจะอัปเดตการปรับใช้เดิมแทนที่จะสร้างใหม่
ใช้เฉพาะการเปลี่ยนแปลงโครงสร้างฐานข้อมูลเท่านั้น
ใช้ npx rayfin up db apply เมื่อคุณต้องการใช้สคีมาฐานข้อมูลโดยไม่ต้องซิงโครไนซ์การตั้งค่ารันไทม์หรือปรับใช้เนื้อหาแบบคงที่:
npx rayfin up db apply
คําสั่งย่อยขั้นสูงนี้มีประโยชน์เมื่อคุณรันส่วนหน้าด้วย npm run dev, ส่วนหลังบ้านถูกติดตั้งแล้ว และคุณต้องการวนเวียนสคีมาอย่างอิสระ
หากการเปลี่ยนแปลงอาจทําให้ข้อมูลสูญหาย เช่น การลบคอลัมน์ หรือการเปลี่ยนชื่อตาราง CLI จะบล็อกการดําเนินการและอธิบายผลกระทบที่อาจเกิดขึ้น หลังจากที่คุณตรวจสอบการดําเนินการและยอมรับการสูญเสียข้อมูล ให้นําการเปลี่ยนแปลงไป --forceใช้กับ :
npx rayfin up db apply --force
ข้อควรระวัง
ตัวเลือกนี้ --force อาจทําให้ข้อมูลสูญหายถาวรได้ ใช้มันได้หลังจากที่คุณตรวจสอบทุกการดําเนินการที่ CLI รายงานไว้แล้ว
ตรวจสอบสคีมาที่ติดตั้งแล้ว
Warning
คําสั่ง or rayfin up db apply ที่ประสบความสําเร็จrayfin upไม่ได้รับประกันว่า frontend ของคุณสามารถสอบถามเอนทิตีใหม่หรือที่เปลี่ยนแปลงได้ทันที ตรวจสอบว่าการปรับใช้มีสุขภาพดีก่อนทดสอบเอนทิตี
หลังจากมีการเปลี่ยนแปลงใด ๆ ใน rayfin/data/, ให้ตรวจสอบการปรับใช้:
npx rayfin up status
หากเอนทิตีใหม่หรือเปลี่ยนแปลงยังคงแสดงข้อผิดพลาด GraphQL หลังจากการปรับใช้มีสุขภาพดี ให้ใช้สคีมาอย่างชัดเจน แล้วทดสอบเอนทิตีอีกครั้ง:
npx rayfin up db apply
เพิ่ม --force เฉพาะเมื่อ CLI รายงานการเปลี่ยนแปลงที่อาจเป็นอันตรายและคุณยอมรับการสูญหายของข้อมูล
สําหรับสถานะการติดตั้งที่อ่านได้โดยเครื่อง ให้ใช้ผลลัพธ์ JSON:
npx rayfin up status --json
คุณสามารถใช้คําตอบ JSON ในสคริปต์ที่รอการปรับใช้ที่ดีก่อนจะตรวจสอบเพิ่มเติม
ปฏิบัติตามเวิร์กโฟลว์สคีมาทั่วไป
# 1. Edit an entity, such as rayfin/data/Todo.ts.
# 2. Apply the application changes.
npx rayfin up
# 3. Verify that the deployment is healthy.
npx rayfin up status
# 4. If the changed entity still fails, apply the schema explicitly.
npx rayfin up db apply
หากขั้นตอนที่ 4 รายงานการดําเนินการที่อาจก่อให้เกิดความเสียหาย ให้ตรวจสอบก่อนรันคําสั่งใหม่ด้วย --force.
แก้ไขปัญหาการเปลี่ยนแปลงสคีมา
GraphQL ส่งคืนข้อผิดพลาดภายในเซิร์ฟเวอร์
ตรวจสอบทุก @text() ฟิลด์ในเอนทิตีที่ได้รับผลกระทบว่ามีค่าที่ขาดหายไป max หรือไม่ ด้วย Microsoft SQL Server, @text() ไม่มีคอลัมน์ NVARCHAR(MAX) ซึ่งจะmaxป้องกันการสร้างสคีมา GraphQL
เพิ่มความยาวสูงสุดที่ชัดเจน แล้วใช้สคีมา:
@text({ max: 200 })
title!: string;
npx rayfin up db apply --force
ตรวจสอบการดําเนินการที่รายงานก่อนใช้ --force.
CLI รายงานการเปลี่ยนแปลงที่อาจทําลายล้าง
ตรวจสอบการดําเนินการที่ระบุไว้ รวมถึงคอลัมน์ที่ถูกตัดออก ประเภทที่ถูกจํากัด และตารางที่เปลี่ยนชื่อ รันคําสั่ง --force ใหม่หลังจากที่คุณยืนยันแล้วว่าการสูญหายของข้อมูลเป็นที่ยอมรับได้
การใช้สคีมาล้มเหลว
รัน npx rayfin up status, และรอให้บริการกลับมาแข็งแรงก่อนจะลองใช้ schema apply ใหม่
บริการข้อมูลไม่มีภาษาถิ่น
เมื่อ services.data.enabled เป็น true, กําหนดค่า dialect: mssql ใน rayfin/rayfin.yml.
services:
data:
enabled: true
dialect: mssql
ใช้พรอมต์ AI
คัดลอกพรอมต์ต่อไปนี้ไปยัง GitHub Copilot หรือเอเจนต์โค้ดอื่นที่สามารถเข้าถึงโปรเจกต์และเทอร์มินัลของคุณ:
I just added a new field to an entity in my Rayfin project's rayfin/data/ folder. Run
`npx rayfin up` to apply the change, then run `npx rayfin up status` to confirm the
deployment is healthy. If querying the changed entity still fails after that, run
`npx rayfin up db apply` and check again. Review any potentially destructive operations with me before using `--force`.