Przejdź do głównej zawartości

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.


Proces merge jest zaprojektowany jako bezpieczny, przewidywalny i przejrzysty:

  1. Selekcja: Wybierz środowisko źródłowe (skąd pochodzą zmiany) i docelowe (gdzie chcesz je zastosować).
  2. Analiza: System wykonuje diff, aby zidentyfikować brakujące zmiany w środowisku docelowym.
  3. Przegląd i Cherry-pick: Przejrzyj wykryte zmiany i selektywnie wybierz, które zastosować.
  4. Automatyczna kopia zapasowa: Przed zastosowaniem zmian Archie Core tworzy pełną kopię zapasową danych i struktury środowiska docelowego.
  5. Atomowe zastosowanie: Wybrane zmiany są stosowane w jednej operacji. Jeśli jakakolwiek część merge się nie powiedzie, cała operacja jest automatycznie cofana.

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.

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.

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.

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.


mutation MergeEnvironments($input: MergeEnvironmentInput!) {
mergeEnvironments(input: $input) {
success
message
migrationId
changesApplied
backupId
}
}
query MigrationHistory($projectId: ID!, $environment: String) {
migrationHistory(projectId: $projectId, environment: $environment) {
id
sourceEnvironment
targetEnvironment
status
appliedBy
appliedAt
changes {
changeType
objectName
sql
isBreaking
}
backupId
}
}