Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Applicare modifiche di entità Rayfin al database usando rayfin up o rayfin up db apply, e verificare che lo schema sia arrivato al server.
La modifica di una classe in rayfin/data/ non cambia automaticamente il database distribuito. Rayfin legge le tue entità e genera la configurazione Data API Builder (DAB) solo quando applichi esplicitamente le modifiche.
Utilizzo rayfin up per aggiornamenti di applicazioni
Esegui npx rayfin up ogni volta che vuoi distribuire le tue ultime modifiche di entità in un'app Fabric:
npx rayfin up
Questo comando:
- Sincronizza le impostazioni di runtime.
- Applica lo schema di database generato dai decoratori in
rayfin/data/. - Compila e distribuisce contenuti statici quando
staticHostingè abilitato.
Esegui il comando dopo ogni modifica a un file in rayfin/data/. Dopo la prima distribuzione, le esecuzioni successive aggiornano la stessa distribuzione invece di crearne una nuova.
Applica solo le modifiche allo schema del database
Usalo npx rayfin up db apply quando vuoi applicare lo schema del database senza sincronizzare le impostazioni di runtime o distribuire contenuti statici:
npx rayfin up db apply
Questo sottocomando avanzato è utile quando esegui il frontend con npm run dev, il backend è già distribuito e vuoi iterare sullo schema in modo indipendente.
Se una modifica può causare perdita di dati, come la rimozione di una colonna o il rinominamento di una tabella, la CLI blocca l'operazione e ne descrive l'impatto potenziale. Dopo aver esaminato le operazioni e accettato la perdita di dati, applicare la modifica con --force:
npx rayfin up db apply --force
Caution
L'opzione --force può causare una perdita permanente di dati. Usalo solo dopo aver esaminato ogni operazione segnalata dalla CLI.
Verifica lo schema distribuito
Avvertimento
Un comando rayfin up db apply o un comando riuscito rayfin up non garantisce che il tuo frontend possa interrogare immediatamente una nuova entità o una nuova entità modificata. Verifica che la distribuzione sia integra prima di testare l'entità.
Dopo ogni modifica in rayfin/data/, verifica la distribuzione:
npx rayfin up status
Se un'entità nuova o modificata restituisce ancora errori GraphQL dopo che la distribuzione è diventata sana, applica esplicitamente lo schema e poi testa nuovamente l'entità:
npx rayfin up db apply
Aggiungi --force solo se la CLI segnala un cambiamento potenzialmente distruttivo e accetti la perdita di dati.
Per lo stato di distribuzione leggibile dalla macchina, usa l'output JSON:
npx rayfin up status --json
Puoi usare la risposta JSON in uno script che attende un deployment sano prima di eseguire ulteriori controlli.
Segui un flusso di lavoro tipico dello schema
# 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
Se il passo 4 segnala un'operazione potenzialmente distruttiva, rivedela prima di rieseguire il comando con --force.
Risoluzione dei problemi relativi alle modifiche dello schema
GraphQL restituisce un errore interno del server
Controlla ogni campo @text() nell'entità interessata per verificare l'assenza di un valore max. Con Microsoft SQL Server, @text() senza max si genera una NVARCHAR(MAX) colonna, che può impedire la generazione dello schema GraphQL.
Aggiungi lunghezze massime esplicite, e poi applica lo schema:
@text({ max: 200 })
title!: string;
npx rayfin up db apply --force
Rivedi le operazioni segnalate prima di usare --force.
Il CLI riporta un cambiamento potenzialmente distruttivo
Rivedi le operazioni elencate, incluse colonne eliminate, tipi restringiti e tabelle rinominate. Riesegui il comando --force solo dopo aver confermato che la perdita di dati è accettabile.
L'applicazione dello schema fallisce
Esegui npx rayfin up status, e attendi che i servizi siano nuovamente operativi prima di riprovare ad applicare lo schema.
Il servizio dati non ha un dialetto
Quando services.data.enabled è true, configura dialect: mssql in rayfin/rayfin.yml.
services:
data:
enabled: true
dialect: mssql
Usa un prompt AI
Copia il seguente prompt in GitHub Copilot o in un altro agente di programmazione che abbia accesso al tuo progetto e terminale:
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`.