Como atualizar adequadamente o Docker Azerothcore com personalizações para código (scripts), módulos e banco de dados (missões adicionadas, fornecedores, itens)
Estou executando o Azerothcore-WOLTK dentro de um contêiner do Docker. Gostaria de atualizar o servidor, pois li que há uma correção de segurança importante.
No entanto, nunca atualizei o servidor desde que o instalei pela primeira vez no ano passado (dezembro de 2019). Desde então, personalizei o servidor de várias maneiras:
- Eu personalizei alguns scripts de chefe para funcionar corretamente com dois jogadores.
- Instalei alguns módulos, incluindo um que também exigia a compilação de um código extra e a execução de algumas consultas SQL.
- Eu mesmo modifiquei o banco de dados, adicionando missões, NPC, fornecedores e itens
Como tal, estou extremamente preocupado em acabar bagunçando tudo. Preciso de sua ajuda sobre como proceder para atualizar o servidor para a versão mais recente, mantendo todas as personalizações que realizei.
Estou especialmente preocupado com as mudanças no banco de dados, pois acho que poderia fazer backup dos scripts boss atualizados, fazer um git pull e substituí-los novamente antes de construir (eu deveria fazer um fork depois, não pensei sobre isso) ... Mas de qualquer forma, ficaria extremamente grato se você pudesse me orientar passo a passo ao longo do caminho, considerando que estou usando uma instalação docker.
Para qualquer coisa relacionada a banco de dados eu uso Heidi SQL, então eu poderia usar isso para qualquer procedimento de banco de dados. Não sou muito proficiente em consultas SQL, mas devo ser capaz de importar arquivos .sql conforme necessário.
Sei que estou pedindo muito, então, por favor, não se sinta pressionado a responder imediatamente. Ficarei muito grato se você puder me ajudar sempre que tiver oportunidade.
Obrigado pelo seu tempo :)
Respostas
Vou tentar responder a todos os pontos que você mencionou:
1. Os scripts do chefe.
A pior coisa que pode acontecer é você obter conflitos de mesclagem enquanto puxa as alterações mais recentes usando git
. Portanto, você teria que resolvê-los manualmente. Não é necessariamente difícil, especialmente no seu caso. São apenas scripts de chefe, então, por natureza, eles são bastante autossuficientes e você tem certeza de não quebrar nada ao mexer com eles.
2. Módulos
Os módulos não devem ser um problema. Os módulos existem exatamente por este motivo: serem isolados e não causar problemas em caso de atualização do núcleo ou similar.
Minha única preocupação aqui seria aquele módulo que exigia uma mudança básica. Não sei qual módulo você instalou, normalmente isso não deveria acontecer. Um módulo AzerothCore adequado não deve exigir nenhuma alteração de núcleo. No entanto, novamente, a pior coisa que você pode ter são alguns conflitos de git merge, nada muito grande, espero (depende de quão grandes e invasivas foram essas alterações exigidas pelo módulo).
3. Alterações personalizadas no banco de dados.
A regra de ouro é: sempre armazene suas consultas SQL personalizadas em algum lugar, de forma que possam ser facilmente reaplicadas. Por exemplo, use sempre DELETE
antes INSERT
, prefira UPDATE
quando possível, etc ...
Portanto, tudo o que você precisa é de um arquivo (ou vários arquivos) contendo todo o seu código SQL correspondente às alterações personalizadas que você fez. Se você não tiver, ainda poderá extraí-lo do seu banco de dados.
Então, você pode sempre reaplicá-los depois de atualizar seu núcleo, se achar necessário. Também pode ser o caso de você não precisar reaplicá-los. Ou talvez você queira começar a partir de um novo banco de dados mundial AzerothCore e reaplicar suas alterações. Isso realmente depende do caso específico, mas de qualquer forma você ficará bem (contanto que mantenha suas alterações em arquivos SQL).
Você pode usar o Keira3 para editar seu banco de dados ou apenas extrair suas alterações, caso seja necessário. Por exemplo, você pode abrir uma entidade e copiar sua "consulta completa".
Backup primeiro
Antes de iniciar o procedimento de atualização, crie um backup de:
- seu banco de dados
- os arquivos de origem que você modificou (por exemplo, chefes, etc ...)
Atualize com frequência!
No entanto, nunca atualizei o servidor desde que o instalei pela primeira vez no ano passado (dezembro de 2019).
Isso não é recomendado de forma alguma! Você deve atualizar seu AzerothCore com frequência (pelo menos uma vez por semana). Existem muitos bons motivos para fazer isso, um deles é: é muito mais fácil se você fizer isso com frequência.
Como atualizar o AzerothCore ao usar o Docker
Uma pergunta genérica sobre a atualização do AC com Docker já foi feita aqui: Como atualizar o contêiner azerothcore-wotlk docker