Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Terapkan perubahan entitas Rayfin ke database menggunakan rayfin up atau rayfin up db apply, dan verifikasi bahwa skema telah mencapai server.
Mengedit kelas di rayfin/data/ tidak mengubah database yang sudah terpasang dengan sendirinya. Rayfin membaca entitas Anda dan menghasilkan konfigurasi Data API Builder (DAB) hanya ketika Anda secara eksplisit menerapkan perubahan tersebut.
Penggunaan rayfin up untuk pembaruan aplikasi
Jalankan npx rayfin up kapan pun Anda ingin menerapkan perubahan entitas terbaru ke aplikasi Fabric:
npx rayfin up
Perintah ini:
- Menyinkronkan pengaturan runtime.
- Menerapkan skema basis data yang dihasilkan dari dekorator di
rayfin/data/. - Membangun dan mendistribusikan konten statis saat
staticHostingdiaktifkan.
Jalankan perintah setelah setiap perubahan pada file di rayfin/data/. Setelah deployment pertama, eksekusi berikutnya memperbarui deployment yang sama alih-alih membuat deployment baru.
Hanya terapkan perubahan skema basis data
Gunakan npx rayfin up db apply saat Anda ingin menerapkan skema database tanpa menyinkronkan pengaturan runtime atau mendistribusikan konten statis:
npx rayfin up db apply
Subperintah lanjutan ini berguna saat Anda menjalankan frontend dengan npm run dev, backend sudah di-deploy, dan Anda ingin melakukan iterasi skema secara terpisah.
Jika perubahan dapat menyebabkan kehilangan data, seperti kehilangan kolom, atau mengganti nama tabel, CLI akan memblokir operasi tersebut dan menjelaskan potensi dampaknya. Setelah Anda meninjau operasi dan menerima kehilangan data, terapkan perubahan dengan --force:
npx rayfin up db apply --force
Caution
Opsi ini --force dapat menyebabkan kehilangan data permanen. Gunakan hanya setelah Anda meninjau setiap operasi yang dilaporkan oleh CLI.
Verifikasi skema yang telah didistribusikan
Warning
Perintah rayfin up atau rayfin up db apply yang berhasil dijalankan tidak menjamin bahwa frontend Anda dapat langsung mengkueri entitas baru atau yang telah diubah. Verifikasi bahwa penerapan dalam kondisi sehat sebelum Anda menguji entitas tersebut.
Setelah setiap perubahan pada rayfin/data/, periksa penerapan:
npx rayfin up status
Jika entitas baru atau yang diubah masih mengembalikan kesalahan GraphQL setelah deployment menjadi sehat, terapkan skema secara eksplisit, lalu uji kembali entitas tersebut:
npx rayfin up db apply
Tambahkan --force hanya jika CLI melaporkan perubahan yang berpotensi merusak dan Anda menerima kehilangan data tersebut.
Untuk status deployment yang dapat dibaca mesin, gunakan output JSON:
npx rayfin up status --json
Anda dapat menggunakan respons JSON dalam skrip yang menunggu penerapan yang sehat sebelum melakukan pemeriksaan lebih lanjut.
Ikuti alur kerja skema yang khas
# 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
Jika langkah 4 melaporkan operasi yang berpotensi merusak, tinjau sebelum menjalankan ulang perintah dengan --force.
Pemecahan masalah perubahan skema
GraphQL mengembalikan kesalahan server internal
Periksa setiap @text() kolom pada entitas yang terdampak untuk nilai yang hilang max . Dengan Microsoft SQL Server, @text() tanpa max menghasilkan kolom NVARCHAR(MAX), yang dapat mencegah pembuatan skema GraphQL.
Tambahkan panjang maksimum eksplisit, lalu terapkan skema:
@text({ max: 200 })
title!: string;
npx rayfin up db apply --force
Tinjau operasi yang dilaporkan sebelum menggunakan --force.
CLI melaporkan perubahan yang berpotensi merusak
Tinjau operasi yang tercantum, termasuk kolom yang dihapus, tipe yang dipersempit, dan tabel yang diganti namanya. Jalankan kembali perintah dengan --force saja hanya setelah Anda memastikan bahwa hilangnya data dapat diterima.
Penerapan skema gagal
Jalankan npx rayfin up status, dan tunggu hingga layanan berstatus sehat sebelum mencoba lagi penerapan skema.
Layanan data ini tidak memiliki dialek
Kapan services.data.enabled adalah true, konfigurasikan dialect: mssql di rayfin/rayfin.yml.
services:
data:
enabled: true
dialect: mssql
Gunakan prompt AI
Salin prompt berikut ke GitHub Copilot atau agen pengkodean lain yang memiliki akses ke proyek dan terminal Anda:
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`.