Oktatóanyag: Ágalapú fejlesztési munkafolyamat

Tanulja meg, hogyan használja az olyan ágakat, mint a Git-ágak: hozzon létre minden fejlesztő számára külön ágat a független munkához, majd állítsa vissza őket a szinkronizálás érdekében.

Előfeltételek

  • Egy production ággal rendelkező Lakebase-projekt (az alapértelmezett)
  • Megosztott development fejlesztési munkához létrehozott production ág
  • Az SQL és a Postgres alapszintű ismerete

A kezdőséma beállítása

A fejlesztői ág létrehozása előtt állítson be egy egyszerű sémát a fejlesztési ágon. Ez a közös kiindulási pont, amelyből minden fejlesztő elágazik. Amikor létrehozod a személyes ágadat, az azonnal örökli ezt a sémát a másolás-íráskor mechanizmus révén.

  1. Navigáljon a fejlesztési ágra a Lakebase felhasználói felületén.
  2. Nyissa meg az SQL-szerkesztőt.
  3. Hozzon létre egy egyszerű felhasználói táblát mintaadatokkal:
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');

A fejlesztői ág létrehozása

A csapat minden fejlesztője hosszú életű ágat használhat a folyamatos munkához. Állítsa alaphelyzetbe rendszeresen, hogy szinkronban maradjon a szülővel.

A projekt áglistájában válassza ki a fejlesztési ágat, majd kattintson a Gyermekág létrehozása elemre. Adjon meg egy ágnevet (kötelező), például dev/alex (a mintát dev/<your-name>követve) és kattintson a Létrehozás gombra.

Az ág azonnal létrejön, és tartalmazza az összes sémát és adatot a fejlesztésből, a copy-on-write (másoláskor írás) technikával.

Az ághierarchia:

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

A funkció fejlesztése

Az .env fájlban lévő kapcsolati sztring frissítésével irányítsa az alkalmazását a fejlesztői ágra, majd a szokásos munkafolyamatával fejlessze a funkciót.

Ha például a felhasználói beállítások követését szeretné hozzáadni az alkalmazásához, az magában foglalná a felhasználói modell frissítését, egy migráció létrehozását a keretrendszerével (Prisma, Alembic, Django stb.), és annak futtatását az Ön dev/alex ágán. Az áttelepítési fájl a következőket tartalmazhatja:

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

A migrálás futtatása után dolgozzon ki egy preferencia funkciót az alkalmazáskódban, és tesztelje a teljes folyamatot helyileg. Az ága teljesen el van különítve. A módosítások nem érintik a termelési környezetet vagy más fejlesztőket.

A módosítások áttekintése

Mielőtt más környezetekbe továbbítanánk a módosításokat, használjuk a sémaösszehasonlító eszközt annak ellenőrzésére, hogy pontosan mi változott. Keresse meg az ág áttekintését dev/alex, kattintson a Séma diff, és hasonlítsa össze az development-et.

Az egymás melletti összehasonlítás zöld színnel jeleníti meg az új preferences oszlopot és indexet:

Schema diff, amely megjeleníti a dev/alex ághoz hozzáadott beállítások oszlopát és indexét

Ez az ellenőrzési lépés segít elkapni a nem kívánt módosításokat, mielőtt azok elérnék az éles üzemet. A séma különbségeiről szóló teljes dokumentációért lásd az Ágsémák összehasonlítása című részt.

A módosítások érvényesítése

Az előléptetés nem automatikus. A módosítások előmozdításához futtassa le ugyanazt az áttelepítést az development ágon, amelyen már futott dev/alex. Nincs Lakebase-specifikus lépés. A migrálási fájl már megtalálható a kódbázisban, így ez a szokásos üzembehelyezési folyamatot követi.

  1. Frissítse a kapcsolati stringet úgy, hogy a development ágra mutasson.
  2. Futtassa a migrálást development azzal a parancssal, amelyet dev/alex-on/on használt.
  3. Telepítse a frissített alkalmazáskódot.

Mivel a migráció már érvényesítve lett a személyes ágodon, zökkenőmentesen kellene alkalmaznia. Az előléptetés után a többi fejlesztő látni fogja a frissített sémát, amikor visszaállítják az ágakat a(z) development-tól.

Alaphelyzetbe állítás és újrakezdés

Ha készen áll az új munka megkezdésére, állítsa alaphelyzetbe a személyes ágát, hogy szinkronban maradjon a változásokkal, amelyek a development többi fejlesztőtől származhatnak. Így a jelenlegi megosztott alapkonfigurációtól kezdheti meg az új kezdést.

Lépjen a dev/alex ágára, és kattintson a Szülőtől visszaállítás parancsra. Az alaphelyzetbe állítási mód megerősíti, hogy az összes adatbázis és szerepkör a legújabb adatokkal developmentlesz helyettesítve. Ez a művelet nem vonható vissza, ezért a megerősítés előtt győződjön meg arról, hogy előléptette azokat a módosításokat, amelyeket meg szeretne tartani.

Adatmegerősítő modális visszaállítása

Az ág most már pontosan egyezik development , készen áll a következő feladatra.

Ajánlott eljárások

  • Konzisztens elnevezés használata: Kövesse a dev/<name> fejlesztői ágak mintáját.
  • Alaphelyzetbe állítás rendszeresen: Az eltolódás elkerülése érdekében tartsa szinkronban az ágat development .
  • Produkció védelme:Védett ágak használata a véletlen változtatások megelőzéséhez