Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Wenden Sie Rayfin-Entitätsänderungen auf die Datenbank an, indem Sie rayfin up oder rayfin up db apply verwenden, und überprüfen Sie, ob das Schema den Server erreicht hat.
Das Bearbeiten einer Klasse in rayfin/data/ ändert die bereitgestellte Datenbank nicht automatisch. Rayfin liest deine Entitäten und generiert die Data API Builder (DAB)-Konfiguration nur, wenn du die Änderungen explizit anwendest.
Verwendung rayfin up für Anwendungsupdates
Führen Sie npx rayfin up immer dann aus, wenn Sie Ihre neuesten Entitätsänderungen in einer Fabric-App bereitstellen möchten:
npx rayfin up
Dieser Befehl:
- Synchronisiert die Laufzeiteinstellungen.
- Verwendet das von den Dekoratoren generierte Datenbankschema in
rayfin/data/. - Erstellt statische Inhalte und stellt sie bereit, wenn
staticHostingaktiviert ist.
Führe den Befehl nach jeder Änderung einer Datei in rayfin/data/aus. Nach der ersten Bereitstellung aktualisieren nachfolgende Durchläufe dieselbe Bereitstellung, anstatt eine neue zu erstellen.
Nur Datenbankschemaänderungen anwenden
Verwenden npx rayfin up db apply Sie, wenn Sie das Datenbankschema anwenden möchten, ohne die Laufzeiteinstellungen zu synchronisieren oder statische Inhalte bereitzustellen:
npx rayfin up db apply
Dieser erweiterte Unterbefehl ist nützlich, wenn du das Frontend mit npm run devausführst, das Backend ist bereits implementiert und du das Schema unabhängig iterieren möchtest.
Wenn eine Änderung Datenverlust verursachen könnte, wie zum Beispiel das Entfernen einer Spalte oder das Umbenennen einer Tabelle, blockiert die CLI die Operation und beschreibt die potenziellen Auswirkungen. Nachdem Sie die Operationen überprüft und den Datenverlust akzeptiert haben, wenden Sie die Änderung mit --forceFolgendes an:
npx rayfin up db apply --force
Caution
Die Option --force kann dauerhaften Datenverlust verursachen. Verwenden Sie es nur, nachdem Sie alle von der CLI gemeldeten Operationen überprüft haben.
Überprüfen Sie das bereitgestellte Schema
Warning
Ein erfolgreicher rayfin up Befehl rayfin up db apply garantiert nicht, dass Ihr Frontend sofort eine neue oder geänderte Entität abfragen kann. Überprüfen Sie, dass die Bereitstellung gesund ist, bevor Sie die Entität testen.
Überprüfen Sie nach jeder Änderung in rayfin/data/ das Deployment:
npx rayfin up status
Wenn eine neue oder geänderte Entität weiterhin GraphQL-Fehler erzeugt, nachdem die Bereitstellung erfolgreich läuft, wenden Sie das Schema explizit an und testen Sie die Entität anschließend erneut:
npx rayfin up db apply
Füge --force nur hinzu, wenn die CLI eine potenziell destruktive Änderung meldet und du den Datenverlust akzeptierst.
Für den maschinenlesbaren Bereitstellungsstatus verwenden Sie die JSON-Ausgabe:
npx rayfin up status --json
Du kannst die JSON-Antwort in einem Skript verwenden, das auf eine gesunde Bereitstellung wartet, bevor weitere Prüfungen durchgeführt werden.
Folgen Sie einem typischen Schema-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
Wenn Schritt 4 eine potenziell zerstörerische Operation meldet, überprüfen Sie diese, bevor Sie den Befehl mit --forceerneut ausführen.
Probleme mit Schemaänderungen beheben
GraphQL liefert einen internen Serverfehler zurück
Überprüfen Sie jedes @text() Feld der betroffenen Entität auf einen fehlenden max Wert. Mit Microsoft SQL Server erzeugt @text() ohne max eine NVARCHAR(MAX)-Spalte, was die Generierung des GraphQL-Schemas verhindern kann.
Fügen Sie explizite maximale Längen hinzu und wenden Sie dann das Schema an:
@text({ max: 200 })
title!: string;
npx rayfin up db apply --force
Überprüfen Sie die gemeldeten Operationen, bevor Sie --force verwenden.
Die CLI meldet eine potenziell zerstörerische Veränderung
Überprüfen Sie die aufgeführten Operationen, einschließlich weggelassener Spalten, verengter Typen und umbenannter Tabellen. Führe den Befehl --force erst erneut aus, nachdem du bestätigt hast, dass der Datenverlust akzeptabel ist.
Das Anwenden des Schemas ist fehlgeschlagen.
Führe npx rayfin up status aus und warte, bis die Dienste wieder den Status „healthy“ erreicht haben, bevor du erneut versuchst, das Schema anzuwenden.
Der Datendienst hat keinen Dialekt
Wenn services.data.enableddialect: mssql ist, konfigurieren Sie rayfin/rayfin.yml in true.
services:
data:
enabled: true
dialect: mssql
Verwenden Sie einen KI-Prompt
Kopieren Sie die folgende Eingabeaufforderung in GitHub Copilot oder einen anderen Programmieragenten, der Zugriff auf Ihr Projekt und Ihr Terminal hat:
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`.