Udostępnij przez


Samouczek: przepływ pracy programowania opartego na gałęziach

Ważne

Skalowanie automatyczne bazy danych Lakebase znajduje się w wersji beta w następujących regionach: eastus2, westeurope, westus.

Autoskalowanie bazy danych Lakebase to najnowsza wersja bazy danych Lakebase z automatycznym skalowaniem obliczeniowym, skalowaniem do zera, rozgałęzianiem i natychmiastowym przywracaniem. Aby zapoznać się z porównaniem funkcji z Lakebase Provisioned, sprawdź wybieranie między wersjami.

Dowiedz się, jak używać gałęzi, takich jak gałęzie Git, zapewniając każdemu deweloperowi izolowaną gałąź do niezależnej pracy, a następnie resetować, aby zachować synchronizację.

Wymagania wstępne

  • Projekt Lakebase z gałęzią production (domyślną)
  • Gałąź utworzona development na podstawie production dla wspólnej pracy programistycznej
  • Podstawowa znajomość języka SQL i bazy danych Postgres

Konfigurowanie schematu początkowego

Przed utworzeniem gałęzi dewelopera skonfiguruj prosty schemat w gałęzi programowania. Ten element służy jako wspólny punkt wyjścia, od którego wszyscy deweloperzy będą forkać. Podczas tworzenia gałęzi osobistej natychmiast dziedziczy ten schemat za pomocą kopiowania na zapis.

  1. Przejdź do gałęzi programowania w interfejsie użytkownika usługi Lakebase.
  2. Otwórz edytor SQL.
  3. Utwórz podstawową tabelę użytkowników z przykładowymi danymi:
CREATE TABLE users (
    id SERIAL PRIMARY KEY,
    email TEXT NOT NULL UNIQUE,
    created_at TIMESTAMP DEFAULT NOW()
);

INSERT INTO users (email) VALUES
    ('alice@example.com'),
    ('bob@example.com'),
    ('charlie@example.com');

Tworzenie gałęzi dewelopera

Każdy deweloper w zespole może mieć długotrwałą gałąź do ciągłej pracy. Okresowo resetuj go, aby zachować synchronizację z elementem nadrzędnym.

Z listy gałęzi projektu wybierz gałąź programowania , a następnie kliknij pozycję Utwórz gałąź podrzędną. Wprowadź nazwę gałęzi (wymaganą), taką jak dev/alex (zgodnie ze wzorcem dev/<your-name>), a następnie kliknij przycisk Utwórz.

Gałąź jest tworzona natychmiast i zawiera wszystkie schematy i dane z programowania za pośrednictwem kopiowania na zapis.

Hierarchia gałęzi:

production (root)
  └── development (has users table + data)
        └── dev/alex (instantly inherits users table + data)

Opracuj funkcję

Wskaż aplikację na swojej gałęzi deweloperskiej, aktualizując parametry połączenia w pliku .env, a następnie opracuj funkcję przy użyciu normalnego przepływu pracy.

Na przykład dodanie śledzenia preferencji użytkownika do aplikacji wymaga zaktualizowania modelu użytkownika, wygenerowania migracji za pomocą struktury (Prisma, Alembic, Django itp.) i uruchomienia jej w gałęzi dev/alex . Plik migracji może zawierać następujące elementy:

ALTER TABLE users ADD COLUMN preferences JSONB DEFAULT '{}';
CREATE INDEX idx_users_preferences ON users USING GIN (preferences);

Po zakończeniu migracji opracuj funkcję preferencji w kodzie aplikacji i przetestuj cały przepływ lokalnie. Twoja gałąź jest całkowicie odizolowana — zmiany nie wpływają na środowisko produkcyjne ani innych deweloperów.

Przeglądanie zmian

Przed podwyższeniem do innych środowisk użyj różnic schematu, aby sprawdzić dokładnie, co się zmieniło. Przejdź do dev/alex przeglądu gałęzi, kliknij pozycję Różnice schematu i porównaj z development.

Porównanie obok siebie pokazuje nową preferences kolumnę i indeks w kolorze zielonym:

Różnice schematu przedstawiające kolumnę 'preferencji' i indeks dodane w gałęzi dev/alex

Ten krok weryfikacji ułatwia przechwycenie niezamierzonych zmian przed dotarciem do środowiska produkcyjnego. Aby zapoznać się z pełną dokumentacją dotyczącą różnic w schematach, zobacz Porównanie schematów gałęzi.

Promuj swoje zmiany

Gdy jesteś pewny swoich zmian, wypchnij je do gałęzi nadrzędnych. Zastosuj te same zmiany schematu, które zweryfikowałeś na dev/alex, w swojej gałęzi development, a następnie wdróż kod aplikacji. Ten przepływ pracy zapewnia, że zmiany schematu są testowane w izolacji przed dotarciem do wspólnych środowisk.

Resetowanie i rozpoczynanie od nowa

Gdy będziesz gotowy do rozpoczęcia nowej pracy, zresetuj swoją osobistą gałąź, aby zachować synchronizację z development, który mógł się zmienić z powodu działań innych deweloperów. To zapewnia nowe rozpoczęcie od bieżącej wspólnej bazy wyjściowej.

Przejdź do dev/alex gałęzi i kliknij pozycję Resetuj z poziomu elementu nadrzędnego. Modalne resetowanie potwierdza, że wszystkie bazy danych i role zostaną zastąpione najnowszymi danymi z .development Ta akcja nie jest odwracalna, dlatego przed potwierdzeniem upewnij się, że promowano wszelkie zmiany, które chcesz zachować.

Modalne resetowanie potwierdzenia danych

Gałąź teraz dokładnie odpowiada development, jest gotowa na następne zadanie.

Najlepsze rozwiązania

  • Użyj spójnego nazewnictwa: Postępuj zgodnie ze wzorcem dev/<name> dla gałęzi deweloperów.
  • Regularnie resetuj: Utrzymuj gałąź w synchronizacji z development, aby uniknąć rozbieżności.
  • Ochrona środowiska produkcyjnego: Używanie chronionych gałęzi w celu zapobiegania przypadkowym zmianom