Flyway Community Edition için Python tabanlı geri alma yöntemi geliştirildi
Öne çıkanlar
- Geri alma betikleri daha yüksek sürüm numaralarıyla geçici dizinde ileri yönlü geçiş olarak çalıştırıldı.
- Tüm tersine çevirme ve geçmiş temizleme adımları tek bir veritabanı işleminde atomik olarak tamamlandı.
- Uygulanan geçişlerin kayıtları afterMigrate kancasıyla geçmiş tablosundan silinerek durum senkronize edildi.
Yazılım geliştiricisi aconcan, Flyway Community Edition sürümünde bulunmayan geri alma işlevini ücretli lisans gerektirmeden çalıştıran Python tabanlı bir yöntem yayımladı. Yalnızca Flyway Teams gibi ücretli sürümlerde sunulan undo komutunun eksikliği, açık kaynak sürümün standart komutları ve dosya manipülasyonuyla aşıldı.
Yöntem, geri alma işlemlerini geriye doğru değil, daha yüksek sürüm numaralarıyla ileriye doğru birer geçiş dosyası olarak çalıştırıyor. Sistem, her geçiş öncesi ve sonrasındaki durum farkını JSON dosyasına kaydederek son paketi belirliyor. Ardından geçici bir dizinde oluşturulan tersine çevirme betikleri -group=true parametresiyle tek bir veritabanı işlemi altında uygulanıyor.
İşlemin son aşamasında afterMigrate.sql tetikleyicisi devreye girerek hem orijinal geçişin hem de tersine çevirme betiğinin kayıtlarını flyway_schema_history tablosundan siliyor. Bu sayede veritabanı geçmişi temizleniyor ve geri alınan betikler diskte yeniden uygulanabilir duruma geliyor.
Bu özet yapay zekâ ile hazırlanmıştır; ayrıntılar ve doğrulama için orijinal kaynağa başvurun.