Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Zastosuj zmiany encji Rayfin do bazy danych za pomocą rayfin up lub rayfin up db apply i sprawdź, czy schemat został przesłany na serwer.
Edytowanie klasy w rayfin/data/ samo w sobie nie zmienia wdrożonej bazy danych. Rayfin odczytuje informacje o Twoich encjach i generuje konfigurację Data API Builder (DAB) tylko wtedy, gdy jawnie zastosujesz zmiany.
Zastosowanie rayfin up do aktualizacji aplikacji
Uruchom npx rayfin up za każdym razem, gdy chcesz wdrożyć najnowsze zmiany encji do aplikacji Fabric:
npx rayfin up
To polecenie:
- Synchronizuje ustawienia w czasie rzeczywistym.
- Stosuje schemat bazy danych wygenerowany przez dekoratorów w
rayfin/data/. - Buduje i wdraża statyczną treść, gdy
staticHostingjest włączona.
Wykonaj polecenie po każdej zmianie pliku w rayfin/data/. Po pierwszym wdrożeniu kolejne uruchomienia aktualizują to samo wdrożenie zamiast tworzyć nowe.
Stosuj tylko zmiany schematu bazy danych
Używaj, npx rayfin up db apply gdy chcesz zastosować schemat bazy danych bez synchronizacji ustawień wykonawczych czy wdrażania statycznej zawartości:
npx rayfin up db apply
Ta zaawansowana podkomenda jest przydatna, gdy uruchamiasz frontend z npm run dev, backend jest już wdrożony, a Ty chcesz niezależnie pracować nad schematem.
Jeśli zmiana może spowodować utratę danych, na przykład usunięcie kolumny lub zmianę nazwy tabeli, CLI blokuje operację i opisuje potencjalny wpływ. Po przejrzeniu operacji i zaakceptowaniu utraty danych, zastosuj zmianę w sposób:--force
npx rayfin up db apply --force
Caution
Ta --force opcja może spowodować trwałą utratę danych. Używaj go dopiero po przejrzeniu wszystkich operacji zgłoszonych przez CLI.
Zweryfikowaj wdrożony schemat
Warning
Pomyślne polecenie rayfin up lub rayfin up db apply nie gwarantuje, że frontend może natychmiast odpytać nową lub zmienioną encję. Sprawdź, czy wdrożenie jest prawidłowe, zanim przetestujesz jednostkę.
Po każdej zmianie w rayfin/data/, sprawdź wdrożenie:
npx rayfin up status
Jeśli nowa lub zmieniona jednostka nadal zwraca błędy GraphQL po tym, jak wdrożenie stanie się zdrowe, należy wprost zastosować schemat, a następnie ponownie przetestować tę jednostkę:
npx rayfin up db apply
Dodaj --force tylko wtedy, gdy CLI zgłasza potencjalnie destrukcyjną zmianę i akceptujesz utratę danych.
Aby uzyskać status wdrożenia czytelnego maszynowo, użyj wyjścia JSON:
npx rayfin up status --json
Możesz użyć odpowiedzi w formacie JSON w skrypcie, który czeka na prawidłowo działające wdrożenie przed uruchomieniem dalszych kontroli.
Postępuj zgodnie z typowym przepływem pracy schematu
# 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
Jeśli krok 4 zgłasza potencjalnie destrukcyjną operację, przejrzyj ją przed ponownym uruchomieniem polecenia za pomocą --force.
Rozwiązywanie problemów ze zmianami schematu
GraphQL zwraca wewnętrzny błąd serwera
Sprawdź każde pole @text() w encji, której dotyczy problem, pod kątem braku wartości max. W Microsoft SQL Server element @text() bez max generuje kolumnę NVARCHAR(MAX), co może uniemożliwić wygenerowanie schematu GraphQL.
Dodaj wyraźne maksymalne długości, a następnie zastosuj schemat:
@text({ max: 200 })
title!: string;
npx rayfin up db apply --force
Przejrzyj operacje widoczne w raporcie, zanim użyjesz --force.
CLI informuje o potencjalnie destrukcyjnej zmianie
Przejrzyj wymienione operacje, w tym usunięte kolumny, zawężone typy i tabele o zmienionych nazwach. Uruchom ponownie polecenie z opcją --force dopiero po potwierdzeniu, że utrata danych jest akceptowalna.
Zastosowanie schematu kończy się niepowodzeniem
Uruchom npx rayfin up status i poczekaj, aż usługi osiągną stan gotowości, zanim ponowisz próbę zastosowania schematu.
Usługa danych nie posiada dialektu
Gdy services.data.enabled jest true, skonfiguruj dialect: mssql w rayfin/rayfin.yml.
services:
data:
enabled: true
dialect: mssql
Użyj polecenia AI
Skopiuj poniższy prompt do GitHub Copilot lub innego agenta kodującego, który ma dostęp do Twojego projektu i terminala:
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`.