Wdrażanie schematów i łączników Data Connectors oraz zarządzanie nimi

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:

  1. Wyświetla obecnie wdrożone schematy i oprogramowanie sprzęgające z: firebase dataconnect:services:list
  2. zarządzanie aktualizacjami schematu,
    1. Sprawdź różnice w schemacie SQL między Cloud SQL bazy danych i lokalnego schematu Data Connect za pomocą funkcji firebase dataconnect:sql:diff.
    2. W razie potrzeby przeprowadź migrację schematu SQL za pomocą narzędzia dataconnect:sql:migrate.
  3. 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 TABLEDROP 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, sieciFluttera.
  • Więcej informacji o narzędziach do wdrażania znajdziesz w dokumentacji interfejsu wiersza poleceń Data Connect i pliku konfiguracyjnego Data Connect.