Come aggiornare correttamente Docker Azerothcore con personalizzazioni sia di codice (script), moduli e database (missioni aggiunte, fornitori, oggetti)

Aug 19 2020

Sto eseguendo Azerothcore-WOLTK all'interno di un container Docker. Vorrei aggiornare il server poiché ho letto che esiste un'importante soluzione per la sicurezza.

Tuttavia non ho mai aggiornato il server da quando l'ho installato per la prima volta l'anno scorso (dicembre 2019). Da allora, ho personalizzato il server in diversi modi:

  1. Ho personalizzato alcuni script dei boss per funzionare correttamente con due giocatori.
  2. Ho installato alcuni moduli, incluso uno che richiedeva anche la compilazione di codice aggiuntivo e l'esecuzione di alcune query SQL.
  3. Ho modificato personalmente il database, aggiungendo missioni, PNG, venditori e oggetti

In quanto tale, sono estremamente preoccupato di finire per rovinare tutto. Avrei bisogno della tua assistenza su come procedere per aggiornare il server all'ultima versione mantenendo tutte le personalizzazioni che ho eseguito.

Sono particolarmente preoccupato per le modifiche al database poiché immagino di poter eseguire il backup degli script del boss aggiornati, fare un git pull e sostituirli di nuovo prima di costruire (dovrei fare un fork dopo, non ci ho pensato) ... Ma in ogni caso ti sarei estremamente grato se potessi guidarmi passo passo lungo il percorso, visto che sto utilizzando un'installazione docker.

Per qualsiasi cosa relativa al database utilizzo Heidi SQL, quindi potrei usarlo per qualsiasi procedura di database. Non sono molto esperto nelle query SQL, ma dovrei essere in grado di importare file .sql secondo necessità.

Mi rendo conto che sto chiedendo molto, quindi per favore non sentirti obbligato a rispondere subito. Ti sarò molto grato se potessi aiutarmi ogni volta che ne avrai la possibilità.

Grazie per il tuo tempo :)

Risposte

3 FrancescoBorzi Aug 20 2020 at 04:49

Proverò a rispondere a tutti i punti che hai menzionato:

1. Gli script del capo.

La cosa peggiore che può accadere è che si ottengano conflitti di unione mentre si estraggono le ultime modifiche utilizzando git. Quindi dovresti risolverli manualmente. Non è necessariamente difficile, soprattutto nel tuo caso. Sono solo gli script del capo, quindi per natura sono piuttosto autonomi e sei sicuro di non rompere nient'altro quando li giochi.

2. Moduli

I moduli non dovrebbero essere affatto un problema. I moduli esistono esattamente per questo motivo: essere isolati e non causare problemi in caso di aggiornamento del core o simili.

La mia unica preoccupazione qui sarebbe quel modulo che ha richiesto un cambiamento di base. Non so quale modulo hai installato, normalmente questo non dovrebbe accadere. Un modulo AzerothCore appropriato non dovrebbe richiedere alcun cambiamento di base. Tuttavia, ancora una volta, la cosa peggiore che puoi avere sono alcuni conflitti di git merge, niente di troppo grande spero (dipende da quanto grandi e invasivi erano questi cambiamenti richiesti dal modulo).

3. Modifiche al database personalizzato.

La regola d'oro è: archiviare sempre le query SQL personalizzate da qualche parte, in modo che possano essere facilmente riapplicate. Ad esempio, usa sempre DELETEprima INSERT, preferisci UPDATEquando possibile, ecc ...

Quindi tutto ciò che devi avere è un file (o un gruppo di file) contenente tutto il tuo codice SQL corrispondente alle modifiche personalizzate che hai apportato. Se non ce l'hai, puoi comunque estrarlo dal tuo DB.

Quindi puoi sempre riapplicarli dopo aver aggiornato il tuo core, se ritieni che sia necessario. Potrebbe anche essere il caso in cui non sia necessario riapplicarli affatto. O forse vuoi iniziare da un nuovo database mondiale AzerothCore e riapplicare le modifiche. Questo dipende davvero dal caso specifico, ma comunque andrà tutto bene (a patto di mantenere le modifiche nei file SQL).

Puoi usare Keira3 per modificare il tuo database o semplicemente estrarre le modifiche nel caso in cui ne avessi bisogno. Ad esempio, puoi aprire un'entità e copiare la sua "query completa".

Prima fai il backup

Prima di iniziare la procedura di aggiornamento, creare un backup di:

  • il tuo DB
  • i file sorgenti che hai modificato (es. boss, ecc ...)

Aggiorna frequentemente!

Tuttavia non ho mai aggiornato il server da quando l'ho installato per la prima volta l'anno scorso (dicembre 2019).

Questo non è affatto consigliato! Dovresti aggiornare il tuo AzerothCore frequentemente (almeno una volta alla settimana). Ci sono molte buone ragioni per farlo, una di queste è: è molto più facile se lo fai spesso.

Come aggiornare AzerothCore quando si utilizza Docker

Una domanda generica sull'aggiornamento di AC con Docker è già stata posta qui: Come aggiornare il contenitore docker azerothcore-wotlk