Fabric Apps'te şema değişikliklerini uygulayın ve doğrulayın

Rayfin varlık değişikliklerini veritabanına veya rayfin uprayfin up db applykullanarak uygulayın ve şemanın sunucuya ulaştığını doğrulayın.

Bir sınıfı düzenlemek rayfin/data/ , dağıtılan veritabanını tek başına değiştirmez. Rayfin, varlıklarınızı okur ve yalnızca değişiklikleri açıkça uyguladığınızda Data API Builder (DAB) yapılandırması oluşturur.

Uygulama güncellemeleri için rayfin up kullanın

En son varlık değişikliklerinizi Fabric uygulamasına ne zaman dağıtmak istediğinizde çalıştırınnpx rayfin up:

npx rayfin up

Bu komut:

  • Çalışma zamanı ayarlarını senkronize eder.
  • rayfin/data/ içindeki dekoratörlerden oluşturulan veritabanı şemasını uygular.
  • Etkinleştirildiğinde staticHosting statik içerik oluşturur ve dağıtır.

rayfin/data/ içindeki bir dosyada yapılan her değişiklikten sonra komutu çalıştırın. İlk dağıtımdan sonra, sonraki çalışmalar yeni bir dağıtım oluşturmak yerine aynı dağıtımı günceller.

Sadece veritabanı şema değişikliklerini uygula

Veritabanı şemasını çalışma zamanı ayarlarını senkronize etmeden veya statik içerik dağıtmadan uygulamak istediğinizde kullanın npx rayfin up db apply :

npx rayfin up db apply

Bu gelişmiş alt komut, ön yüzü npm run dev ile çalıştırdığınızda, arka uç zaten dağıtılmışsa ve şema üzerinde bağımsız olarak yineleme yapmak istediğinizde kullanışlıdır.

Bir değişiklik veri kaybına yol açabiliyorsa, örneğin bir sütunun düşürülmesi veya bir tablonun yeniden adlandırılması gibi, CLI işlemi engeller ve olası etkiyi tanımlar. İşlemleri inceleyip veri kaybını kabul ettikten sonra, değişikliği şu şekilde --forceuygulayın:

npx rayfin up db apply --force

Caution

Bu --force seçenek kalıcı veri kaybına yol açabilir. Yalnızca CLI tarafından bildirilen her işlemi inceledikten sonra kullanın.

Dağıtılan şemayı doğrulayın

Warning

rayfin up veya rayfin up db apply komutunun başarılı olması, frontend’inizin yeni veya değiştirilmiş bir varlığı hemen sorgulayabileceğini garanti etmez. Varlığı test etmeden önce dağıtımın sorunsuz durumda olduğunu doğrulayın.

rayfin/data/ içindeki herhangi bir değişiklikten sonra dağıtımı kontrol edin:

npx rayfin up status

Eğer yeni veya değiştirilmiş bir varlık dağıtım sağlıklı hale geldikten sonra hâlâ GraphQL hatalarını döndürüyorsa, şemayı açıkça uygulayın ve sonra varlığı tekrar test edin:

npx rayfin up db apply

--force etiketini yalnızca CLI potansiyel olarak yıkıcı bir değişiklik bildirdiğinde ve veri kaybını kabul ediyorsanız ekleyin.

Makine tarafından okunabilir dağıtım durumu için JSON çıktısını kullanın:

npx rayfin up status --json

JSON yanıtını, daha ileri denetimleri çalıştırmadan önce dağıtımın sağlıklı olmasını bekleyen bir betikte kullanabilirsiniz.

Tipik bir şema iş akışını takip edin

# 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

Eğer 4. adım potansiyel olarak yıkıcı bir operasyon bildiriyorsa, komutu tekrar çalıştırmadan önce bunu gözden geçirin.--force

Sorun giderme şema değişiklikleri

GraphQL iç sunucu hatası döndürür

Etkilenen varlıktaki her @text() alanı eksik max bir değer için kontrol edin. Microsoft SQL Server kullanıldığında, NVARCHAR(MAX) olmadan @text(), GraphQL şeması oluşturulmasını engelleyebilecek bir max sütunu oluşturur.

Açık maksimum uzunluklar ekleyin ve ardından şemayı uygulayın:

@text({ max: 200 })
title!: string;
npx rayfin up db apply --force

--force kullanmadan önce raporlanan işlemleri gözden geçirin.

CLI, potansiyel olarak yıkıcı bir değişiklik bildiriyor

Listelenen işlemleri, bırakılan sütunlar, daraltılmış türler ve yeniden adlandırılmış tablolar dahil olmak üzere gözden geçirin. Veri kaybının kabul edilebilir olduğunu doğruladıktan sonra komutu --force tekrar çalıştırın.

Şema uygulaması başarısız oluyor

npx rayfin up status komutunu çalıştırın ve şema uygulama işlemini yeniden denemeden önce hizmetlerin sağlıklı duruma gelmesini bekleyin.

Veri servisinin lehçesi yoktur

services.data.enabled, true olduğunda, dialect: mssql içinde rayfin/rayfin.yml yapılandırın.

services:
  data:
    enabled: true
    dialect: mssql

Bir yapay zekâ istemi kullanın

Aşağıdaki isteği GitHub Copilot veya projenize ve terminalinize erişimi olan başka bir kodlama ajanına kopyalayın:

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`.