Arka fon
Sıfır kesinti süresi dağıtımını uygulamak isteyen bir ekipte çalışıyorum. Bunu başarmak için mavi / yeşil bir dağıtım stratejisi kullanmayı planlıyoruz. Araştırma yaparken anladığım şeylerden biri de veritabanı değişiklik yapmanın ne kadar karmaşık olduğu. Bir sütunu yeniden adlandırmak gibi basit bir işlem tamamlanana kadar 3 tam serbest bırakma döngüsü alabilir !
Bana öyle geliyor ki, bir değişimin tümüyle yayınlanmasının çoklu serbest bırakma çevrimleri alması insan hatası için çok fazla potansiyel oluşturuyor. Bağlantılı makalede, 2 sürüm için kod değişikliklerinin gerekli olduğunu ve 3 sürüm için bir veritabanı geçişinin gerekli olduğunu göstermektedir.
Ne için bakıyorum
Şu anda, bir şey yapmayı hatırlamak istiyorsak, sorun yönetim sistemimizde bir karmaşa yaratan ve aynı zamanda yönetim tarafından daha sonraki bir koşuya veya birikintiye taşınabilecek bir bilet oluşturabiliriz; ya da muhtemelen tamamen unutulacak olan bir TODO yorumu oluşturabiliriz.
Aradığım şey, bir TODO yorumunun aleyhinde son teslim tarihine sahip olabileceği ve Sürekli Entegrasyon sistemimizin (kullanacağımız kararsız olan) süresinin dolması halinde yapıyı reddedeceği bir yol.
Örneğin, bir sütunu yeniden adlandırırsak, bunun için ilk geçişi ve kalan iki geçişin oluşturulmasını sağlamak için iki TODO yorumu oluşturabiliriz:
// TODO by v55: Create migration to move constraints to new column, remove references to old column in app
// TODO by v56: Create migration to drop old column
Bunu yapmak oldukça basit görünüyor, ama böyle bir şeyin var olup olmadığını merak ediyorum, çünkü tekerleği yeniden icat etmek istemiyorum.
Ek düşünceler
Buradaki XY probleminden muzdarip olabileceğimi düşünüyorum, yuvarlanan dağıtımların ve mavi / yeşil dağıtımların en iyi uygulama olduğu düşünülürse, veritabanı güncellemelerini daha az acı verici hale getirecek bir çözüm bulamamam garip görünüyor. Tamamen yanlış bir şeye baktığımı düşünüyorsanız, lütfen bir yorumda bana bildirin! Bu, verdiğim veritabanı örneğinin sadece bir örnek olduğunu ve TODO’nun son tarihlere sahip yorumlarının diğer durumlarda da yararlı olacağını düşünüyorum, bu nedenle bu özel duruma tamamen yanlış yaklaşsam bile gerçekten cevaplarımı vermek istiyorum. Asıl soru da. Teşekkürler!
EDIT: Sadece bunun yararlı olabileceği başka bir durum düşündüm. Uygulamanızın parçalarını hazır olduklarında açmak için Özellik Geçişlerini kullanıyorsanız, bunları temizlerken dikkatli olmanız gerekir, aksi halde Geçiş Borcunu kullanabilirsiniz . Son başvuru tarihi olan yorumlar, bunu hatırlamanın iyi bir yolu olabilir.
TODO <Bug#>:
diğer bileşenlerle ilgili sorunların çözümünü izlemek için kullanıyoruz . Bu bileşenlerden birinde bir hata giderildiğinde, ilgili geçici çözümleri kolayca bulabilir ve çözebilirsiniz. Bir sorun izleyicinin yerini almaz, bakımını kolaylaştırır.