วิธีอัปเดต Docker Azerothcore อย่างถูกต้องด้วยการปรับแต่งทั้งโค้ด (สคริปต์) โมดูลและฐานข้อมูล (เพิ่มเควสผู้ขายรายการ)
ฉันใช้งาน Azerothcore-WOLTK ภายในคอนเทนเนอร์ Docker ฉันต้องการอัปเดตเซิร์ฟเวอร์เนื่องจากฉันอ่านว่ามีการแก้ไขด้านความปลอดภัยที่สำคัญ
อย่างไรก็ตามฉันไม่เคยอัปเดตเซิร์ฟเวอร์เลยตั้งแต่ฉันติดตั้งครั้งแรกเมื่อปีที่แล้ว (ธันวาคม 2019) ตั้งแต่นั้นมาฉันได้ปรับแต่งเซิร์ฟเวอร์ในหลายวิธี:
- ฉันได้ปรับแต่งสคริปต์บอสสองสามตัวเพื่อให้ทำงานได้อย่างเหมาะสมกับผู้เล่นสองคน
- ฉันได้ติดตั้งโมดูลสองสามโมดูลซึ่งรวมถึงโมดูลที่ต้องคอมไพล์โค้ดพิเศษและคิวรี SQL บางส่วนที่จะเรียกใช้
- ฉันได้แก้ไขฐานข้อมูลด้วยตัวเองเพิ่มเควส NPC ผู้ขายและไอเทม
ด้วยเหตุนี้ฉันจึงกังวลอย่างยิ่งว่าฉันจะทำให้ทุกอย่างยุ่งเหยิง ฉันต้องการความช่วยเหลือจากคุณเกี่ยวกับวิธีดำเนินการอัปเดตเซิร์ฟเวอร์ให้เป็นเวอร์ชันล่าสุดในขณะที่รักษาการปรับแต่งทั้งหมดที่ฉันได้ดำเนินการ
ฉันกังวลเป็นพิเศษเกี่ยวกับการเปลี่ยนแปลงฐานข้อมูลเนื่องจากฉันคิดว่าฉันสามารถสำรองสคริปต์เจ้านายที่อัปเดตได้ทำการดึงคอมไพล์และแทนที่อีกครั้งก่อนสร้าง (ฉันควรแยกหลังจากนั้นฉันไม่ได้คิดเกี่ยวกับเรื่องนี้) ... ไม่ว่าในกรณีใดฉันจะขอบคุณอย่างยิ่งหากคุณสามารถแนะนำฉันทีละขั้นตอนโดยพิจารณาว่าฉันใช้การติดตั้งนักเทียบท่า
สำหรับฐานข้อมูลใด ๆ ที่เกี่ยวข้องฉันใช้ Heidi SQL ดังนั้นฉันจึงสามารถใช้สิ่งนั้นสำหรับขั้นตอนฐานข้อมูลใด ๆ ฉันไม่ค่อยเชี่ยวชาญในการสืบค้น SQL แต่ฉันควรจะสามารถนำเข้าไฟล์. sql ได้ตามต้องการ
ฉันรู้ว่าฉันกำลังถามมากดังนั้นโปรดอย่ารู้สึกกดดันที่จะตอบทันที ฉันจะขอบคุณมากที่สุดถ้าคุณสามารถช่วยฉันได้ทุกเมื่อที่มีโอกาส
ขอขอบคุณสำหรับเวลาของคุณ :)
คำตอบ
ฉันจะพยายามตอบทุกประเด็นที่คุณกล่าวถึง:
1. สคริปต์เจ้านาย
สิ่งที่แย่ที่สุดที่สามารถเกิดขึ้นคือการที่คุณจะได้รับความขัดแย้งผสานgit
ในขณะที่ดึงการเปลี่ยนแปลงล่าสุดใช้ ดังนั้นคุณจะต้องแก้ปัญหาด้วยตนเอง ไม่ใช่เรื่องยากโดยเฉพาะในกรณีของคุณ มันเป็นแค่สคริปต์ของเจ้านายดังนั้นโดยธรรมชาติแล้วพวกมันค่อนข้างมีตัวตนและคุณต้องแน่ใจว่าจะไม่ทำอะไรผิดพลาดเมื่อไปยุ่งกับพวกเขา
2. โมดูล
โมดูลไม่ควรมีปัญหาเลย โมดูลมีอยู่อย่างแน่นอนด้วยเหตุผลนี้: ถูกแยกออกและไม่ก่อให้เกิดปัญหาในกรณีที่อัปเดตคอร์หรือที่คล้ายกัน
ข้อกังวลเดียวของฉันที่นี่คือโมดูลที่ต้องมีการเปลี่ยนแปลงหลัก ฉันไม่รู้ว่าคุณติดตั้งโมดูลอะไรซึ่งโดยปกติไม่ควรเกิดขึ้น โมดูล AzerothCore ที่เหมาะสมไม่จำเป็นต้องมีการเปลี่ยนแปลงหลักใด ๆ อย่างไรก็ตามอีกครั้งสิ่งที่แย่ที่สุดที่คุณสามารถมีได้คือความขัดแย้งในการผสานคอมไพล์ไม่มีอะไรใหญ่เกินไปที่ฉันหวังไว้ (ขึ้นอยู่กับว่าการเปลี่ยนแปลงเหล่านี้ต้องการการเปลี่ยนแปลงที่ใหญ่และรุกรานเพียงใด)
3. การเปลี่ยนแปลงฐานข้อมูลที่กำหนดเอง
กฎทองคือ: เก็บคำค้นหา SQL ที่กำหนดเองของคุณไว้ที่ใดที่หนึ่งเสมอเพื่อให้สามารถนำไปใช้ใหม่ได้อย่างง่ายดาย เช่นใช้DELETE
ก่อนเสมอINSERT
ชอบUPDATE
เมื่อเป็นไปได้ ฯลฯ ...
ดังนั้นสิ่งที่คุณต้องมีคือไฟล์ (หรือไฟล์จำนวนมาก) ที่มีโค้ด SQL ทั้งหมดของคุณที่ตรงกับการเปลี่ยนแปลงแบบกำหนดเองที่คุณทำ หากคุณไม่มีคุณยังสามารถดึงข้อมูลออกจากฐานข้อมูลของคุณได้
จากนั้นคุณสามารถนำไปใช้ใหม่ได้ตลอดเวลาหลังจากอัปเดตคอร์ของคุณหากคุณรู้สึกว่าจำเป็น อาจเป็นกรณีที่คุณไม่จำเป็นต้องสมัครใหม่เลย หรือคุณอาจต้องการเริ่มต้นจากฐานข้อมูลโลก AzerothCore ใหม่และนำการเปลี่ยนแปลงของคุณไปใช้ใหม่ สิ่งนี้ขึ้นอยู่กับกรณีเฉพาะ แต่อย่างไรก็ตามคุณจะสบายดี (ตราบใดที่คุณยังคงการเปลี่ยนแปลงไว้ในไฟล์ SQL)
คุณสามารถใช้Keira3เพื่อแก้ไขฐานข้อมูลของคุณหรือเพียงแค่แยกการเปลี่ยนแปลงของคุณในกรณีที่คุณต้องการ ตัวอย่างเช่นคุณสามารถเปิดเอนทิตีและคัดลอก "แบบสอบถามแบบเต็ม" ได้
สำรองข้อมูลก่อน
ก่อนเริ่มขั้นตอนการอัพเกรดให้สร้างข้อมูลสำรองของ:
- ฐานข้อมูลของคุณ
- ไฟล์ต้นฉบับที่คุณแก้ไข (เช่นบอส ฯลฯ ... )
อัพเดทบ่อย!
อย่างไรก็ตามฉันไม่เคยอัปเดตเซิร์ฟเวอร์เลยตั้งแต่ฉันติดตั้งครั้งแรกเมื่อปีที่แล้ว (ธันวาคม 2019)
ไม่แนะนำเลย! คุณควรอัปเดต AzerothCore ของคุณบ่อยๆ (อย่างน้อยสัปดาห์ละครั้ง) มีหลายเหตุผลที่ดีที่จะทำเช่นนั้นหนึ่งในนั้นคือวิธีที่ง่ายกว่าถ้าคุณทำบ่อยๆ
วิธีอัปเดต AzerothCore เมื่อใช้ Docker
คำถามทั่วไปเกี่ยวกับการอัปเดต AC ด้วย Docker ถูกถามแล้วที่นี่: วิธีอัปเดต azerothcore-wotlk docker container