Cómo actualizar correctamente Docker Azerothcore con personalizaciones tanto para el código (scripts), los módulos y la base de datos (misiones, proveedores, elementos agregados)
Estoy ejecutando Azerothcore-WOLTK dentro de un contenedor Docker. Me gustaría actualizar el servidor porque leí que hay una solución de seguridad importante.
Sin embargo, nunca actualicé el servidor desde que lo instalé por primera vez el año pasado (diciembre de 2019). Desde entonces, he personalizado el servidor de varias formas:
- He personalizado algunos scripts de jefe para que funcionen correctamente con dos jugadores.
- He instalado algunos módulos, incluido uno que también requería que se compilara un código adicional y que se ejecutaran algunas consultas SQL.
- Yo mismo modifiqué la base de datos, agregando misiones, NPC, proveedores y artículos.
Como tal, estoy extremadamente preocupado de terminar arruinando todo. Necesitaría su ayuda sobre cómo proceder para actualizar el servidor a la última versión manteniendo toda la personalización que he realizado.
Estoy especialmente preocupado por los cambios en la base de datos, ya que imagino que podría hacer una copia de seguridad de los scripts de jefe actualizados, hacer un git pull y reemplazarlos nuevamente antes de construir (debería hacer una bifurcación después, no lo pensé) ... Pero en cualquier caso, estaría muy agradecido si pudiera guiarme paso a paso en el camino, considerando que estoy usando una instalación de Docker.
Para cualquier cosa relacionada con la base de datos, uso Heidi SQL, por lo que podría usarlo para cualquier procedimiento de base de datos. No soy muy competente en consultas SQL, pero debería poder importar archivos .sql según sea necesario.
Me doy cuenta de que estoy pidiendo mucho, así que no se sienta presionado a responder de inmediato. Estaré muy agradecido si pudiera ayudarme siempre que tenga la oportunidad.
Gracias por tu tiempo :)
Respuestas
Intentaré responder todos los puntos que mencionaste:
1. Los guiones del jefe.
Lo peor que puede suceder es que se produzcan conflictos de fusión al realizar los últimos cambios con git
. Entonces tendrías que resolverlos manualmente. No es necesariamente difícil, especialmente en tu caso. Son solo scripts de jefe, por lo que, por naturaleza, son bastante independientes y seguramente no romperá nada más cuando se meta con ellos.
2. Módulos
Los módulos no deberían ser un problema en absoluto. Los módulos existen exactamente por esta razón: estar aislados y no causar problemas en caso de actualizar el core o similar.
Mi única preocupación aquí sería ese módulo que requería un cambio fundamental. No sé qué módulo instaló, normalmente esto no debería suceder. Un módulo de AzerothCore adecuado no debería requerir ningún cambio de núcleo. Sin embargo, nuevamente, lo peor que puede tener son algunos conflictos de fusión de git, nada demasiado grande, espero (depende de cuán grandes e invasivos fueron estos cambios requeridos por el módulo).
3. Cambios personalizados en la base de datos.
La regla de oro es: almacene siempre sus consultas SQL personalizadas en algún lugar, de manera que puedan volver a aplicarse fácilmente. Por ejemplo, utilizar siempre DELETE
antes INSERT
, preferir UPDATE
cuando sea posible, etc ...
Entonces, todo lo que necesita es un archivo (o un montón de archivos) que contenga todo su código SQL correspondiente a los cambios personalizados que realizó. Si no lo tiene, aún puede extraerlo de su base de datos.
Luego, siempre puede volver a aplicarlos después de actualizar su núcleo, si cree que es necesario. También puede darse el caso de que no necesite volver a aplicarlos en absoluto. O tal vez desee comenzar desde una nueva base de datos mundial de AzerothCore y volver a aplicar sus cambios. Esto realmente depende del caso específico, pero de todos modos estará bien (siempre que mantenga sus cambios en los archivos SQL).
Puede usar Keira3 para editar su base de datos, o simplemente extraer sus cambios en caso de que lo necesite. Por ejemplo, puede abrir una entidad y copiar su "consulta completa".
Copia de seguridad primero
Antes de iniciar el procedimiento de actualización, cree una copia de seguridad de:
- tu base de datos
- los archivos fuente que ha modificado (por ejemplo, jefes, etc.)
Actualiza con frecuencia.
Sin embargo, nunca actualicé el servidor desde que lo instalé por primera vez el año pasado (diciembre de 2019).
¡Esto no se recomienda en absoluto! Se supone que debes actualizar tu AzerothCore con frecuencia (al menos una vez a la semana). Hay muchas buenas razones para hacerlo, una de ellas es: es mucho más fácil si lo haces con frecuencia.
Cómo actualizar AzerothCore al usar Docker
Ya se ha hecho una pregunta genérica sobre la actualización de AC con Docker aquí: Cómo actualizar el contenedor docker azerothcore-wotlk