Usługa Firebase Data Connect składa się z 3 głównych komponentów:
- Bazowa baza danych PostgreSQL z własnym schematem SQL
- schemat aplikacji Data Connect (zadeklarowany w plikach
.gql
) - wtyczek (deklarowanych w plikach
.gql
).
Schemat SQL jest źródłem wiarygodnych danych, Data Connect zgodnie z tym schematem oprogramowanie sprzęgające może odczytywać te dane, a oprogramowanie sprzęgające deklaruje Interfejsy API, których Twoi klienci mogą używać do uzyskiwania dostępu do tych danych.
Podczas wdrażania usługi Data Connect za pomocą interfejsu wiersza poleceń musisz najpierw przenieść schemat SQL, a następnie zaktualizować schemat Data Connect i każdy z elementów sprzęgających.
Ważne pojęcia związane z wdrażaniem
Aby w pełni zrozumieć wdrożenie, musisz poznać podstawowe pojęcia dotyczące schematów i złączy.
Wdrożenia schematu
Wdrożenie schematu Data Connect wpływa na schemat SQL Twojej w bazie danych Cloud SQL. Data Connect ułatwia migrację schematów podczas wdrażania, niezależnie od tego, czy pracujesz z nową bazą danych, czy musisz bez utraty danych dostosować istniejącą bazę danych.
Data Connect migracje schematu mają 2 różne rodzaje weryfikacji schematu tryby: ścisły i zgodny.
Weryfikacja trybu ścisłego wymaga, aby schemat bazy danych dokładnie odpowiadał przed aktualizacją schematu aplikacji. Dowolne tabele lub kolumny, które nie są używane w schemacie Data Connect zostaną usunięte z bazy danych.
Weryfikacja trybu zgodności wymaga zgodności schematu bazy danych za pomocą schematu aplikacji przed aktualizacją schematu aplikacji; wszystkie dodatkowe zmiany pomijające schematy, tabele i kolumny są opcjonalne.
Zgodność oznacza, że migracje schematu dotyczą tylko tabel i kolumn, do których odwołuje się schemat aplikacji. Elementy w bazie danych, które nie są używane przez schemat aplikacji pozostaną niezmienione. Dlatego po wdrożeniu baza danych może zawierać nieużywane:
- Schematy
- Tabele
- Kolumny
Wdrożenia oprogramowania sprzęgającego
Zapytania i mutacje Data Connect nie są przesyłane przez kod klienta i wykonywane na serwerze. Zamiast tego po wdrożeniu te Data Connect operacje są przechowywane na serwerze, np. Cloud Functions Oznacza to, że wdrożenie może uszkodzić istniejących użytkowników.
Postępuj zgodnie z procedurą wdrażania
Nad projektem Data Connect możesz pracować zarówno w lokalnym katalogu projektu, jak i w konsoli Firebase.
Zalecany proces wdrażania obejmuje:
- Wyświetla obecnie wdrożone schematy i oprogramowanie sprzęgające z:
firebase dataconnect:services:list
- zarządzanie aktualizacjami schematu,
- Sprawdź różnice w schemacie SQL między Cloud SQL
bazy danych i lokalnego schematu Data Connect za pomocą funkcji
firebase dataconnect:sql:diff
. - W razie potrzeby przeprowadź migrację schematu SQL za pomocą narzędzia
dataconnect:sql:migrate
.
- Sprawdź różnice w schemacie SQL między Cloud SQL
bazy danych i lokalnego schematu Data Connect za pomocą funkcji
- Wykonaj schematy i połącz wdrożenia, uruchamiając
firebase deploy
. samego schematu, tylko oprogramowania sprzęgającego lub kombinacji zasobów.
Wdrażanie zasobów Data Connect i zarządzanie nimi
Warto zweryfikować zasoby produkcyjne przed przeprowadzeniem wdrożeń.
firebase dataconnect:services:list
Podczas pracy w lokalnym katalogu projektu zwykle używasz polecenia firebase deploy
, aby wdrożyć schemat i złącza w wersji produkcyjnej, z interaktywnymi informacjami zwrotnymi.
Przy użyciu dowolnego polecenia deploy
flaga --only dataconnect
umożliwia rozdzielenie
Wdrożenia (Data Connect) z innych usług w Twoim projekcie.
Normalne wdrażanie
firebase deploy --only dataconnect
W tym normalnym wdrożeniu interfejs wiersza poleceń Firebase próbuje wdrożyć schemat i złącza.
Sprawdzanie, czy nowy schemat nie powoduje przerwania działania żadnych istniejących złączy. Podczas wprowadzania zmian powodujących przerwy w działaniu postępuj zgodnie ze sprawdzonymi metodami.
Przed zaktualizowaniem schematu Data Connect sprawdza też, czy schemat SQL został już przeniesiony. Jeśli nie, automatycznie wyświetli Ci instrukcje dotyczące migacji schematów.
--force
wdrożenie flagi
firebase deploy --only dataconnect --force
Jeśli nie dotyczy to sprawdzania poprawności oprogramowania sprzęgającego ani schematu SQL, możesz
jeszcze raz uruchom polecenie z użyciem parametru --force
, aby je zignorować.
Wdrożenie --force
nadal sprawdza, czy schemat SQL pasuje do
Schemat Data Connect, ostrzeżenia o niezgodności i prompty.
Wdróż wybrane zasoby
Aby wdrożyć z bardziej szczegółową kontrolą, użyj flagi --only
z argumentem serviceId
. Aby wdrożyć tylko zmiany schematu w przypadku konkretnej usługi:
firebase deploy --only dataconnect:serviceId:schema
Możesz też wdrożyć wszystkie zasoby dla określonego łącznika i usługi.
firebase deploy --only dataconnect:serviceId:connectorId
Na koniec możesz wdrożyć schemat i wszystkie oprogramowanie sprzęgające w jednej usłudze.
firebase deploy --only dataconnect:serviceId
Wycofywanie wdrożenia
Aby ręcznie przywrócić poprzednią wersję kodu, go wdrożyć. Jeśli pierwotne wdrożenie obejmowało zmiany powodujące zniszczenie, możliwe, że nie uda Ci się w pełni odzyskać usuniętych danych.
Migracja schematów baz danych
Jeśli szybko tworzysz prototypy i eksperymentujesz ze schematami, a zmiany w schemacie są niszczące, możesz zaplanować użycie narzędzi Data Connect do weryfikacji zmian i nadzoru nad ich wprowadzaniem.
Różnice w zmianach schematu SQL
Zmiany możesz weryfikować:
firebase dataconnect:sql:diff
Możesz podać listę usług oddzielonych przecinkami.
To polecenie porównuje schemat lokalny usługi z bieżącym schematem z odpowiedniej bazy danych Cloud SQL. Jeśli występuje różnica, program wypisuje polecenia SQL, które należy wykonać, aby ją skorygować.
Zastosuj zmiany
Gdy wszystko będzie gotowe i będziesz gotowy do wdrożenia zmian w schemacie instancji Cloud SQL, uruchom polecenie firebase dataconnect:sql:migrate
. Pojawi się prośba o zatwierdzenie zmian.
firebase dataconnect:sql:migrate [serviceId]
W środowiskach interaktywnych instrukcje migracji SQL i prompty działania są .
Migracja w trybie ścisłym lub zgodnym
W nowym projekcie obowiązuje domyślny tryb walidacji schematu. Polecenie migrate
stosuje wszystkie zmiany schematu bazy danych, które są wymagane przez schemat aplikacji, a potem prosi o zatwierdzenie operacji opcjonalnych, które usuwają schematy, tabele lub kolumny, aby wymusić dokładne dopasowanie schematu bazy danych do schematu aplikacji.
Możesz to zmienić, modyfikując plik dataconnect.yaml
.
Odkomentuj klucz schemaValidation
i ogłoś COMPATIBLE
, aby podczas migracji były stosowane tylko wymagane zmiany.
schemaValidation: "COMPATIBLE"
Możesz też ustawić zachowanie na STRICT
, aby zastosować wszystkie zmiany schematu, a schemat bazy danych był dopasowywany do schematu aplikacji.
schemaValidation: "STRICT"
Więcej informacji znajdziesz w dokumentacji interfejsu wiersza poleceń Data Connect.
Sprawdzone metody zarządzania schematami i złączami
Firebase zaleca pewne praktyki, które warto stosować w: Data Connect w projektach AI.
Minimalizowanie zmian powodujących niezgodności
- Firebase zaleca przechowywanie schematu Data Connect i plików złącza w kontroli źródłowej.
- W miarę możliwości unikaj zmian powodujących niezgodność. Oto kilka typowych przykładów zmian naruszających zasady:
- Usuwanie pola ze schematu
- Ustawienie pola w schemacie, które nie dopuszcza wartości null (np.
Int
->Int!
) - Zmiana nazwy pola w schemacie.
- Jeśli musisz usunąć pole ze schematu, możesz je podzielić
do kilku wdrożeń, aby zminimalizować wpływ:
- Najpierw usuń wszelkie odwołania do pól w oprogramowaniu sprzęgającym i wdróż zmiany.
- Następnie zaktualizuj aplikacje, aby korzystały z nowo wygenerowanych pakietów SDK.
- Na koniec usuń to pole w pliku schematu
.gql
, przeprowadź migrację schematu SQL i jeszcze raz wdróż schemat.
Podczas pracy z nowymi bazami danych używaj trybu ścisłego
Jeśli używasz Data Connect z nową bazą danych i aktywnie rozwijasz schemat aplikacji, a chcesz mieć pewność, że schemat bazy danych jest zgodny ze schematem aplikacji, możesz w sekcji dataconnect.yaml
podać wartość schemaValidation: "STRICT"
.
Dzięki temu zostaną też zastosowane zmiany opcjonalne.
Korzystanie z trybu zgodności, gdy w bazie danych masz dane produkcyjne
Jeśli wprowadzasz zmiany w bazie danych zawierającej dane produkcyjne, zalecamy wykonanie migracji schematu w trybie zgodności, aby nie usunąć dotychczasowych danych. Możesz określić schemaValidation: "COMPATIBLE"
w sekcji dataconnect.yaml
W trybie zgodności w bazie danych są stosowane tylko wymagane zmiany migracji schematu.
DROP SCHEMA
,DROP TABLE
iDROP COLUMN
są uważane za opcjonalne instrukcje i nie będą generowane w planie, nawet jeśli schemat bazy danych zawiera schematy, tabele lub kolumny nie zdefiniowane w schemacie aplikacji.- Jeśli tabela bazy danych zawiera niepustą kolumnę, która nie została uwzględniona w
schematu aplikacji ograniczenie
NOT NULL
zostanie usunięte, dzięki czemu dane będą zostać dodane do tabeli ze zdefiniowanymi oprogramowaniem sprzęgającym.
Co dalej?
- Wdrażanie kodu klienta utworzonego za pomocą wygenerowanych pakietów SDK i zarządzanie nim omówiono w przewodnikach dotyczących Androida, iOS, sieci i Fluttera.
- Więcej informacji o narzędziach do wdrażania znajdziesz w dokumentacji interfejsu wiersza poleceń Data Connect i pliku konfiguracyjnego Data Connect.