Bu bir hata değil
En azından kodunda değil. Bu sizin bir hata olduğunu süreç . Proje yöneticiniz, işleminiz için kodunuzdan çok daha fazla endişeli olmalıdır.
Nasıl anlaştın onunla birlikte?
Oldukça basit, mühendislerin üretimi veya paylaşılan geliştirme veritabanlarını değiştirmelerine izin vermeyerek .
Bunun paylaşılan bir gelişme veritabanı olduğunu varsayalım:
İdeal olarak, eğer mümkünse, ilk etapta paylaşılan bir veritabanına sahip olmaktan kaçının . Bunun yerine, kısa ömürlü geliştirici başına veritabanları var. Bu komut dosyasıyla otomatikleştirilmelidir, aksi takdirde test etme maliyeti çok artar ve test etmemeye özendirici olur. Bu veritabanlarını geliştiricinin iş istasyonunda veya merkezi bir sunucuda bulabilirsiniz.
Bazı nedenlerden dolayı, kesinlikle paylaşılan bir veritabanınızın olması GEREKİRDİRse, fikstür kullanmalısınız - esas olarak, her kullanmanız gerektiğinde veritabanını iyi bilinen bir duruma ayarlayan bir şey. Bu, geliştiricilerin başkalarının değişikliklerinden ısırılmasını önler.
Veritabanına kalıcı değişiklikler uygulamanız gerekiyorsa, bunları kaynak kontrolünüze vermelisiniz . Veritabanınızı, cihazların doğrudan yazma iznine sahip olmayacak ve değişiklikleri kaynak denetiminden alan ve uygulayan bir program olacak şekilde ayarlayın.
Son olarak, bir şeyleri nasıl debug ettiğinize dair açıklamanızdan, CI kullanmıyorsunuz gibi geliyor . CI kullanın . Kurulması biraz üzücü ama uzun vadede çok fazla zaman kazandıracak, yeniden üretilemeyen veritabanı hataları hakkında endişelenmekten vazgeçmekten bahsetmiyoruz. Şimdi sadece heisenbugs için endişelenmen gerekecek !
Bunun bir üretim veritabanı olduğunu varsayarsak:
Eğer devleriniz üretim veritabanlarını değiştiriyorsa, değişiklikler kesinlikle doğru olsa bile, birçok şey çok yanlış gitti.
Geliştiriciler asla üretim veritabanlarına erişmemelidir . Kesinlikle hiçbir sebep yok ve çok yanlış gidebilecek pek çok şey var .
Bir üretim veritabanındaki bir şeyi düzeltmeniz gerekiyorsa , önce yedekleme yapın, bu yedeği farklı (geliştirme) bir örneğe geri yükleyin ve sonra o geliştirme veritabanını oynayın. Bir düzeltmenin hazır olduğunu düşünüyorsanız (kaynak kontrolünde!), Geri yüklemeyi yeniden yapın, düzeltmeyi uygulayın ve sonucu görün. Ardından, işleri tekrar yedekledikten sonra (ve aynı zamanda eşzamanlı güncellemeleri önlemek için), ideal olarak bir yazılım yaması aracılığıyla üretim örneğini düzeltirsiniz.
Bir şeyi üretim veritabanında test etmeniz gerekirse ... hayır, yapmazsınız. Yapmanız gereken testler ne olursa olsun, bir geliştirme durumunda yapmalısınız. Testleri yapmak için bazı verilere ihtiyacınız olursa, o verileri oraya alırsınız.