Aplikace a ověřování změn schémat v Fabric Apps

Použijte změny entit Rayfin v databázi pomocí rayfin up nebo rayfin up db apply a ověřte, že se schéma dostalo na server.

Úprava třídy rayfin/data/ sama o sobě nemění nasazenou databázi. Rayfin čte vaše entity a generuje konfiguraci Data API Builder (DAB) pouze tehdy, když explicitně aplikujete změny.

Použití rayfin up pro aktualizace aplikací

Spouštějte npx rayfin up kdykoli chcete nasadit nejnovější změny entity do Fabric aplikace:

npx rayfin up

Tento příkaz:

  • Synchronizuje nastavení běhu.
  • Aplikuje databázové schéma generované dekorátory v rayfin/data/.
  • Vytváří a nasazuje statický obsah, když staticHosting je povolený.

Příkaz spusťte po každé změně souboru v rayfin/data/. Po prvním nasazení další spuštění aktualizují stejné nasazení místo vytvoření nového nasazení.

Aplikovat pouze změny schématu databáze

Použijte npx rayfin up db apply , když chcete aplikovat databázové schéma bez synchronizace nastavení běhu nebo nasazování statického obsahu:

npx rayfin up db apply

Tento pokročilý podpříkaz je užitečný, když spouštíte frontend s npm run dev, backend je už nasazený a chcete na schématu postupovat nezávisle.

Pokud by změna mohla způsobit ztrátu dat, například vynechání sloupce nebo přejmenování tabulky, CLI operaci zablokuje a popisuje její možný dopad. Po přezkoumání operací a přijetí ztráty dat aplikujte změnu s :--force

npx rayfin up db apply --force

Caution

Tato --force možnost může způsobit trvalou ztrátu dat. Používejte ho až poté, co zkontrolujete všechny operace hlášené CLI.

Ověřte nasazené schéma

Warning

Úspěšný příkaz rayfin up nebo rayfin up db apply nezaručuje, že se váš frontend může okamžitě dotazovat na novou nebo změněnou entitu. Ověřte, že nasazení je zdravé, než entitu otestujete.

Po jakékoli změně v rayfin/data/, zkontrolujte nasazení:

npx rayfin up status

Pokud nová nebo změněná entita stále vrací chyby GraphQL i poté, co se nasazení stane zdravým, aplikujte schéma explicitně a poté entitu znovu otestujte:

npx rayfin up db apply

Přidávejte --force pouze tehdy, pokud CLI hlásí potenciálně destruktivní změnu a vy přijmete ztrátu dat.

Pro stav nasazení čitelného strojem použijte výstup JSON:

npx rayfin up status --json

Odpověď ve formátu JSON můžete použít ve skriptu, který před spuštěním dalších kontrol čeká na úspěšné nasazení.

Postupujte podle typického schématového workflow

# 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

Pokud krok 4 hlásí potenciálně destruktivní operaci, zkontrolujte ji před opětovným spuštěním příkazu pomocí --force.

Změny schématu při řešení problémů

GraphQL vrací interní chybu serveru

Zkontrolujte každé @text() pole na postižené entitě kvůli chybějící max hodnotě. S Microsoft SQL Server @text() bez max generuje sloupecNVARCHAR(MAX), což může zabránit generování schématu GraphQL.

Přidejte explicitní maximální délky a poté použijte schéma:

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

Před použitím --forcesi prostudujte hlášené operace.

CLI uvádí potenciálně destruktivní změnu

Prohlédněte si uvedené operace, včetně vynechaných sloupců, zúžených typů a přejmenovaných tabulek. Spusťte příkaz znovu --force teprve poté, co ověříte, že ztráta dat je přijatelná.

Aplikace schématu se nezdařila

Spusťte npx rayfin up status a počkejte, dokud služby nebudou v pořádku, než se znovu pokusíte použít schéma.

Datová služba nemá žádný dialekt

Když services.data.enabled je true, nakonfigurujte dialect: mssql v rayfin/rayfin.yml.

services:
  data:
    enabled: true
    dialect: mssql

Použijte výzvu umělé inteligence

Zkopírujte následující prompt do GitHub Copilot nebo jiného kódovacího agenta, který má přístup k vašemu projektu a terminálu:

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