Environment Merge
Environment Merge özelliği, bir ortamdan (kaynak) diğerine (hedef) şema değişiklikleri uygulamanızı sağlar. Bu, yeni tablolar, sütunlar, görünümler ve enumlar gibi yapısal değişiklikleri geliştirme yaşam döngünüz boyunca yayan temel işlemdir.
Merge Nasıl Çalışır
Section titled “Merge Nasıl Çalışır”Merge süreci güvenli, öngörülebilir ve şeffaf olacak şekilde tasarlanmıştır:
- Seçim: Kaynak ortamı (değişikliklerin köken aldığı) ve hedef ortamı (bunları uygulamak istediğiniz) seçin.
- Analiz: Sistem hedef ortamda eksik tüm değişiklikleri tanımlamak için bir diff gerçekleştirir.
- İnceleme ve Cherry-pick: Tespit edilen değişiklikleri inceleyin ve hangilerini uygulayacağınızı seçici olarak seçin.
- Otomatik Yedekleme: Herhangi bir değişiklik uygulanmadan önce Archie Core hedef ortamın verilerinin ve yapısının tam bir yedeğini oluşturur.
- Atomik Uygulama: Seçilen değişiklikler tek bir işlem olarak uygulanır. Merge’in herhangi bir kısmı başarısız olursa tüm işlem otomatik olarak geri alınır.
Güvenlik ve Güvenilirlik
Section titled “Güvenlik ve Güvenilirlik”Archie Core merge sırasında üretim ve staging ortamlarınızın bütünlüğünü garanti eder:
- İşlemsel Güncellemeler: Tüm şema değişiklikleri tek bir işlem içinde uygulanır. Bu, ya tüm seçilen değişiklikler başarıyla uygulanır ya da hiçbiri — veritabanınızın kısmen migre edilmiş bir duruma girmesini önler.
- Ortam Kilitleme: Merge devam ederken hedef ortam eşzamanlı yapılandırma değişikliklerini önlemek için kilitlenir.
- Otomatik Merge Öncesi Yedekler: Yürütmeden hemen önce her zaman bir “güvenlik ağı” yedeği oluşturulur. Merge başarılı olur ancak daha sonra bir sorun keşfederseniz, Backups sayfasını kullanarak merge öncesi tam duruma geri yükleyebilirsiniz.
Cherry-Pick Seçimi
Section titled “Cherry-Pick Seçimi”Merge arayüzü neyin taşınacağı üzerinde ayrıntılı kontrol sağlar:
- Bireysel Seçim: Tüm dalı merge etmeden belirli değişiklikleri (tek bir sütun ekleme veya yeni indeks gibi) açıp kapatın.
- Grup İşlemleri: Belirli bir tablo veya görünümle ilgili tüm değişiklikleri hızlıca seçin veya seçimini kaldırın.
- Breaking Değişiklik Koruması: Yıkıcı işlemler (sütun kaldırma gibi) varsayılan olarak önceden seçili değildir. Yanlışlıkla veri kaybını önlemek için bu değişikliklere açıkça onay vermelisiniz.
Migrasyon Geçmişi
Section titled “Migrasyon Geçmişi”Her merge işlemi merkezi bir denetim izine kaydedilir. Bir ortam için Geçmiş sayfası şunları gösterir:
- Denetim Günlüğü: Merge’i kim başlattı, hangi ortamlar dahildi ve ne zaman gerçekleşti.
- Değişiklik Özeti: Ne oluşturuldu, değiştirildi veya kaldırıldığının net bir dökümü.
- İzlenebilirlik: Migrasyon sırasında yürütülen spesifik SQL komutlarının dokümantasyonu.
- Yedek Bağlantısı: O migrasyon için özel olarak oluşturulan otomatik yedeğe doğrudan erişim.
Geri Alma Politikası
Section titled “Geri Alma Politikası”Bir merge’i geri almanız gerekiyorsa, ortamı “Merge öncesi” durumuna geri yüklemek için Backups sayfasını kullanmalısınız.
Not: Basit bir geri almadan farklı olarak, geri yükleme işlemi tüm veritabanını önceki bir zamana döndürür. Üretime merge etmeden önce değişiklikleri bir staging ortamında doğrulamanızı öneririz.
Geliştirici API (GraphQL)
Section titled “Geliştirici API (GraphQL)”Mutation: mergeEnvironments
Section titled “Mutation: mergeEnvironments”mutation MergeEnvironments($input: MergeEnvironmentInput!) { mergeEnvironments(input: $input) { success message migrationId changesApplied backupId }}Query: migrationHistory
Section titled “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 }}