Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Applicera Rayfin-entitetsändringar på databasen genom att använda rayfin up eller rayfin up db apply, och verifiera att schemat har nått servern.
Att redigera en klass i rayfin/data/ ändrar inte den distribuerade databasen i sig själv. Rayfin läser dina entiteter och genererar Data API Builder (DAB)-konfiguration endast när du uttryckligen tillämpar ändringarna.
Användning rayfin up för applikationsuppdateringar
Kör npx rayfin up när du vill distribuera dina senaste entitetsändringar till en Fabric-app:
npx rayfin up
Det här kommandot:
- Synkroniserar runtime-inställningar.
- Tillämpar databasschemat som genereras utifrån dekoratörerna i
rayfin/data/. - Bygger och distribuerar statiskt innehåll när
staticHostingär aktiverat.
Kör kommandot efter varje ändring i en fil i rayfin/data/. Efter den första distributionen uppdaterar efterföljande körningar samma distribution istället för att skapa en ny.
Tillämpa endast databasschemaändringar
Använd npx rayfin up db apply när du vill tillämpa databasschemat utan att synkronisera runtime-inställningar eller distribuera statiskt innehåll:
npx rayfin up db apply
Detta avancerade underkommando är användbart när du kör klientdelen med npm run dev, serverdelen redan är driftsatt och när du vill iterera över schemat oberoende.
Om en ändring kan orsaka dataförlust, som att en kolumn tas bort eller en tabell byts namn, blockerar CLI:n operationen och beskriver den potentiella påverkan. Efter att du har granskat operationerna och accepterat dataförlusten, tillämpa ändringen med --force:
npx rayfin up db apply --force
Caution
Alternativet --force kan orsaka permanent dataförlust. Använd det först efter att du har granskat varje operation som rapporterats av CLI.
Verifiera det distribuerade schemat
Varning
Ett lyckat rayfin up kommando rayfin up db apply garanterar inte att ditt frontend omedelbart kan fråga en ny eller ändrad entitet. Kontrollera att driftsättningen fungerar korrekt innan du testar entiteten.
Efter varje förändring i rayfin/data/, kontrollera installationen:
npx rayfin up status
Om en ny eller ändrad entitet fortfarande returnerar GraphQL-fel efter att distributionen blivit frisk, applicera schemat explicit och testa sedan entiteten igen:
npx rayfin up db apply
Lägg bara till --force om CLI rapporterar en potentiellt destruktiv ändring och du accepterar dataförlust.
För maskinläsbar distributionsstatus, använd JSON-utdata:
npx rayfin up status --json
Du kan använda JSON-svaret i ett skript som väntar på en hälsosam distribution innan du kör vidare kontroller.
Följ ett typiskt schema-arbetsflöde
# 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
Om steg 4 rapporterar en potentiellt destruktiv operation, granska den innan du kör kommandot igen med --force.
Felsök schemaändringar
GraphQL returnerar ett internt serverfel
Kontrollera varje @text() fält på den berörda enheten för ett saknat max värde. Med Microsoft SQL Server genererar @text() utan NVARCHAR(MAX) en max-kolumn, vilket kan förhindra generering av GraphQL-scheman.
Lägg till explicita maximala längder och tillämpa sedan schemat:
@text({ max: 200 })
title!: string;
npx rayfin up db apply --force
Gå igenom de rapporterade operationerna innan du använder --force.
CLI rapporterar en potentiellt destruktiv förändring
Gå igenom de listade operationerna, inklusive borttagna kolumner, avsmalnade typer och omdöpta tabeller. Kör kommandot igen --force först efter att du bekräftat att dataförlusten är acceptabel.
Det går inte att tillämpa schemat
Kör npx rayfin up status och vänta tills tjänsterna fungerar korrekt innan du försöker tillämpa schemat igen.
Datatjänsten har ingen dialekt
När services.data.enabled är true, konfigurera dialect: mssql i rayfin/rayfin.yml.
services:
data:
enabled: true
dialect: mssql
Använd en AI-prompt
Kopiera följande prompt till GitHub Copilot eller någon annan kodagent som har tillgång till ditt projekt och din terminal:
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`.