Environment Merge
Funkcja Environment Merge umożliwia zastosowanie zmian schematu z jednego środowiska (źródło) do drugiego (cel). To główna operacja propagująca zmiany strukturalne — np. nowe tabele, kolumny, widoki i enumy — przez cykl życia rozwoju.
Jak działa Merge
Dział zatytułowany „Jak działa Merge”Proces merge jest zaprojektowany jako bezpieczny, przewidywalny i przejrzysty:
- Selekcja: Wybierz środowisko źródłowe (skąd pochodzą zmiany) i docelowe (gdzie chcesz je zastosować).
- Analiza: System wykonuje diff, aby zidentyfikować brakujące zmiany w środowisku docelowym.
- Przegląd i Cherry-pick: Przejrzyj wykryte zmiany i selektywnie wybierz, które zastosować.
- Automatyczna kopia zapasowa: Przed zastosowaniem zmian Archie Core tworzy pełną kopię zapasową danych i struktury środowiska docelowego.
- Atomowe zastosowanie: Wybrane zmiany są stosowane w jednej operacji. Jeśli jakakolwiek część merge się nie powiedzie, cała operacja jest automatycznie cofana.
Bezpieczeństwo i niezawodność
Dział zatytułowany „Bezpieczeństwo i niezawodność”Archie Core gwarantuje integralność środowisk produkcyjnych i staging podczas merge:
- Aktualizacje transakcyjne: Wszystkie zmiany schematu są stosowane w jednej transakcji. Czyli albo wszystkie wybrane zmiany się udają, albo żadna — unikając częściowo zmigrowanego stanu bazy.
- Blokada środowiska: Podczas merge środowisko docelowe jest blokowane, aby zapobiec równoległym zmianom konfiguracji.
- Automatyczne kopie przed merge: Zawsze tworzona jest kopia zapasowa “siatki bezpieczeństwa” tuż przed wykonaniem. Jeśli merge się powiedzie, ale później odkryjesz problem, możesz przywrócić stan sprzed merge na stronie Backups.
Selekcja Cherry-Pick
Dział zatytułowany „Selekcja Cherry-Pick”Interfejs merge umożliwia szczegółową kontrolę nad tym, co jest przenoszone:
- Selekcja indywidualna: Włącz/wyłącz konkretne zmiany (np. dodanie kolumny lub nowego indeksu) bez mergowania całej gałęzi.
- Akcje grupowe: Szybko zaznacz lub odznacz wszystkie zmiany związane z konkretną tabelą lub widokiem.
- Ochrona przed zmianami breaking: Operacje destrukcyjne (np. usunięcie kolumny) nie są domyślnie zaznaczone. Musisz wyraźnie się na nie zgodzić, aby zapobiec przypadkowej utracie danych.
Historia migracji
Dział zatytułowany „Historia migracji”Każda operacja merge jest rejestrowana w scentralizowanym śladzie audytowym. Strona Historia dla środowiska pokazuje:
- Log audytowy: Kto zainicjował merge, które środowiska były zaangażowane i kiedy.
- Podsumowanie zmian: Przejrzysty podział tego, co zostało utworzone, zmodyfikowane lub usunięte.
- Śledzenie: Dokumentacja konkretnych poleceń SQL wykonanych podczas migracji.
- Link do kopii zapasowej: Bezpośredni dostęp do automatycznej kopii zapasowej utworzonej dla tej migracji.
Polityka rollback
Dział zatytułowany „Polityka rollback”Aby cofnąć merge, użyj strony Backups, aby przywrócić środowisko do stanu “Pre-merge”.
Uwaga: W przeciwieństwie do prostego cofnięcia, operacja przywracania cofa całą bazę danych do wcześniejszego punktu w czasie. Zalecamy weryfikację zmian w środowisku staging przed merge do produkcji.
API dla deweloperów (GraphQL)
Dział zatytułowany „API dla deweloperów (GraphQL)”Mutation: mergeEnvironments
Dział zatytułowany „Mutation: mergeEnvironments”mutation MergeEnvironments($input: MergeEnvironmentInput!) { mergeEnvironments(input: $input) { success message migrationId changesApplied backupId }}Query: migrationHistory
Dział zatytułowany „Query: migrationHistory”query MigrationHistory($projectId: ID!, $environment: String) { migrationHistory(projectId: $projectId, environment: $environment) { id sourceEnvironment targetEnvironment status appliedBy appliedAt changes { changeType objectName sql isBreaking } backupId }}