Sovella ja varmistaa skeemamuutokset Fabric Appsissa

Sovella Rayfin-entiteettimuutoksia tietokantaan käyttämällä rayfin up tai rayfin up db apply, ja varmista, että skeema on saavuttanut palvelimen.

Luokan muokkaaminen rayfin/data/ ei yksinään muuta otettua tietokantaa. Rayfin lukee entiteettisi ja luo Data API Builder (DAB) -konfiguraatiot vain, kun muutokset otetaan käyttöön nimenomaisesti.

Käyttö rayfin up sovelluspäivityksissä

Suorita npx rayfin up aina, kun haluat ottaa käyttöön uusimmat entiteettimuutoksesi Fabric-sovellukseen:

npx rayfin up

Tämä komento:

  • Synkronoi ajonaikaiset asetukset.
  • Soveltaa sisustajien luomia tietokantaskeemaa.rayfin/data/
  • Rakentaa ja julkaisee staattista sisältöä, kun staticHosting se on käytössä.

Suorita komento jokaisen tiedoston muutoksen jälkeen .rayfin/data/ Ensimmäisen käyttöönoton jälkeen seuraavat suoritukset päivittävät saman käyttöönoton uuden luomisen sijaan.

Sovella vain tietokantaskeeman muutoksia

Käytä, npx rayfin up db apply kun haluat soveltaa tietokantaskeemaa ilman ajonaikaisten asetusten synkronointia tai staattisen sisällön käyttöönottoa:

npx rayfin up db apply

Tämä edistynyt alikomento on hyödyllinen, kun ajat frontendin , npm run devtaustajärjestelmä on jo käytössä, ja haluat iteroida skeemaa itsenäisesti.

Jos muutos voi aiheuttaa datan menetystä, kuten sarakkeen pudottaminen tai taulukon uudelleennimeäminen, komentorivi estää operaation ja kuvaa mahdollisen vaikutuksen. Kun olet tarkastellut operaatioita ja hyväksynyt tietojen menetyksen, sovella muutos seuraavasti --force:

npx rayfin up db apply --force

Varoitus

Vaihtoehto --force voi aiheuttaa pysyvää tietojen menetystä. Käytä sitä vasta sen jälkeen, kun olet käynyt läpi kaikki CLI:n raportoimat toimenpiteet.

Varmista käytössä oleva skeema

Varoitus

Onnistunut rayfin up komento rayfin up db apply ei takaa, että frontend voi heti kysyä uutta tai muutettua entiteettiä. Varmista, että käyttöönotto on kunnossa ennen kuin testaat entiteettiä.

Minkä tahansa muutoksen jälkeen rayfin/data/, tarkista käyttöönotto:

npx rayfin up status

Jos uusi tai muutettu entiteetti palauttaa edelleen GraphQL-virheitä käyttöönoton muuttumisen jälkeen, sovella skeema eksplisiittisesti ja testaa entiteetti uudelleen:

npx rayfin up db apply

Lisää --force vain, jos komentokeskus raportoi mahdollisesti tuhoisan muutoksen ja hyväksyt tietojen menetyksen.

Koneellisesti luettavan käyttöönoton tilan saamiseksi käytä JSON-lähtöä:

npx rayfin up status --json

Voit käyttää JSON-vastausta skriptissä, joka odottaa tervettä käyttöönottoa ennen lisätarkistuksia.

Noudata tyypillistä skeematyönkulkua

# 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

Jos vaihe 4 raportoi mahdollisesti tuhoisasta operaatiosta, tarkista se ennen komennon uudelleenajamista .--force

Vianetsintäskeeman muutokset

GraphQL palauttaa sisäisen palvelinvirheen

Tarkista kaikki @text() kentät kyseisellä yksiköllä puuttuvan max arvon varalta. Microsoft SQL Server luo ilman max sarakkeenNVARCHAR(MAX), mikä voi estää GraphQL-skeeman @text() generoinnin.

Lisää eksplisiittiset maksimipituudet ja sovella sitten skeemaa:

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

Tarkista raportoidut toiminnot ennen kuin käytät --force.

CLI raportoi mahdollisesti tuhoisasta muutoksesta

Tarkista luetellut operaatiot, mukaan lukien pudotetut sarakkeet, kavennetut tyypit ja uudelleen nimetyt taulukot. Suorita komento --force uudelleen vasta sen jälkeen, kun olet varmistanut, että datan menetys on hyväksyttävää.

Skeeman soveltaminen epäonnistuu

Juokse npx rayfin up status, ja odota, että palvelut paranevat ennen kuin kokeilet uudelleen skeeman soveltamista.

Datapalvelulla ei ole murretta

Kun services.data.enabled on true, konfiguroi dialect: mssql .rayfin/rayfin.yml

services:
  data:
    enabled: true
    dialect: mssql

Käytä tekoälykehotetta

Kopioi seuraava kehote GitHub Copilot -ohjelmaan tai toiseen koodausagenttiin, jolla on pääsy projektiisi ja terminaaliisi:

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