Docker Azerothcore'u hem koda (betikler), hem modüllere hem de veritabanına (eklenen görevler, satıcılar, öğeler) özelleştirmelerle doğru şekilde güncelleme
Bir Docker konteyner içinde Azerothcore-WOLTK çalıştırıyorum. Önemli bir güvenlik düzeltmesi olduğunu okuduğum için sunucuyu güncellemek istiyorum.
Ancak, geçen yıl (Aralık 2019) ilk kurduğumdan beri sunucuyu hiç güncellemedim. O zamandan beri sunucuyu birkaç şekilde özelleştirdim:
- Birkaç patron komut dosyasını iki oyuncuyla düzgün çalışacak şekilde özelleştirdim.
- Derlenecek fazladan kod gerektiren ve çalıştırılacak bazı SQL sorguları da dahil olmak üzere birkaç modül kurdum.
- Veritabanını kendim değiştirdim, Görevler, NPC, Satıcılar ve Eşyalar ekledim
Bu nedenle, her şeyi alt üst edeceğim konusunda son derece endişeliyim. Yaptığım tüm özelleştirmeleri korurken sunucuyu en son sürüme güncellemeye nasıl devam edeceğiniz konusunda yardımınıza ihtiyacım var.
Güncellenen patron komut dosyalarını yedekleyebileceğimi, bir git çekip yapıp oluşturmadan önce yeniden değiştirebileceğimi düşündüğüm için özellikle veritabanı değişiklikleriyle ilgileniyorum (daha sonra bir çatal yapmalıyım, bunu düşünmedim) ... Ama Her halükarda, bir docker kurulumu kullandığımı düşünerek, bana adım adım rehberlik edebilirseniz çok minnettar olurum.
Veritabanı ile ilgili herhangi bir şey için Heidi SQL kullanıyorum, böylece bunu herhangi bir Veritabanı prosedürü için kullanabilirim. SQL sorgularında çok yetenekli değilim, ancak .sql dosyalarını gerektiği gibi içe aktarabilmeliyim.
Çok sorduğumun farkındayım, bu yüzden lütfen hemen cevap vermek için baskı altında hissetmeyin. Şansın olduğunda bana yardım edebilirsen çok minnettar olacağım.
Zaman ayırdığınız için teşekkür ederim :)
Yanıtlar
Bahsettiğiniz tüm noktaları cevaplamaya çalışacağım:
1. Patron komut dosyaları.
Olabilecek en kötü şey, kullanarak en son değişiklikleri çekerken birleştirme çatışmaları almanızdır git
. Yani bunları manuel olarak çözmeniz gerekir. Özellikle sizin durumunuzda mutlaka zor değil. Bu sadece patron komut dosyalarıdır, bu yüzden doğası gereği, oldukça bağımsızdırlar ve onlarla uğraşırken başka hiçbir şeyi bozmayacağınızdan emin olabilirsiniz.
2. Modüller
Modüller hiç sorun olmamalı. Modüller tam olarak bu nedenle mevcuttur: izole edilmiş olmaları ve çekirdek veya benzeri bir güncelleme durumunda sorunlara neden olmama
Buradaki tek endişem, temel bir değişiklik gerektiren modül olacaktır. Hangi modülü kurduğunuzu bilmiyorum, normalde bu olmamalı. Uygun bir AzerothCore modülü herhangi bir çekirdek değişikliği gerektirmemelidir. Yine de, sahip olabileceğiniz en kötü şey bazı git birleştirme çatışmalarıdır, umarım çok büyük bir şey yoktur (modülün gerektirdiği bu değişikliklerin ne kadar büyük ve istilacı olduğuna bağlıdır).
3. Özel veritabanı değişiklikleri.
Altın kural şudur: özel SQL sorgularınızı her zaman kolayca yeniden uygulanabilecekleri bir yerde saklayın. Örneğin, her zaman DELETE
önce kullanın INSERT
, UPDATE
mümkünse tercih edin , vb ...
Dolayısıyla, sahip olmanız gereken tek şey, yaptığınız özel değişikliklere karşılık gelen tüm SQL kodunuzu içeren bir dosya (veya bir sürü dosya). Eğer sahip değilseniz, yine de DB'nizden çıkartabilirsiniz.
Ardından, gerekli olduğunu düşünüyorsanız, çekirdeğinizi güncelledikten sonra bunları her zaman yeniden uygulayabilirsiniz. Bunları yeniden uygulamanıza gerek kalmayabilir. Ya da belki yeni bir AzerothCore dünya veritabanından başlayıp değişikliklerinizi yeniden uygulamak istiyorsunuz. Bu gerçekten özel duruma bağlıdır, ancak yine de iyi olacaksınız (değişikliklerinizi SQL dosyalarında tuttuğunuz sürece).
Veritabanınızı düzenlemek için Keira3'ü kullanabilir veya ihtiyaç duymanız durumunda sadece değişikliklerinizi çıkarabilirsiniz. Örneğin, bir varlığı açabilir ve "tam sorgusunu" kopyalayabilirsiniz.
Önce yedekleyin
Yükseltme prosedürüne başlamadan önce aşağıdakilerin bir yedeğini oluşturun:
- senin DB
- değiştirdiğiniz kaynak dosyalar (örneğin patronlar vb.)
Sık sık güncelleyin!
Ancak, geçen yıl (Aralık 2019) ilk kurduğumdan beri sunucuyu hiç güncellemedim.
Bu hiç tavsiye edilmez! AzerothCore'unuzu sık sık güncellemeniz gerekiyor (en az haftada bir). Bunu yapmak için pek çok iyi neden var, bunlardan biri: Sık sık yaparsanız çok daha kolay.
Docker kullanırken AzerothCore nasıl güncellenir?
AC'yi Docker ile güncellemeyle ilgili genel bir soru zaten burada sorulmuştur: azerothcore-wotlk docker container nasıl güncellenir