Как правильно обновить Docker Azerothcore с настройками кода (скриптов), модулей и базы данных (добавленные квесты, поставщики, предметы)

Aug 19 2020

Я запускаю Azerothcore-WOLTK внутри контейнера Docker. Я хотел бы обновить сервер, поскольку прочитал, что есть важное исправление безопасности.

Однако я никогда не обновлял сервер с тех пор, как впервые установил его в прошлом году (декабрь 2019 г.). С тех пор я настроил сервер несколькими способами:

  1. Я настроил несколько сценариев боссов для правильной работы с двумя игроками.
  2. Я установил несколько модулей, в том числе один, который также требует компиляции дополнительного кода и выполнения некоторых SQL-запросов.
  3. Я сам изменил базу данных, добавив квесты, NPC, поставщиков и предметы.

Поэтому я очень обеспокоен тем, что в конечном итоге все испорчу. Мне потребуется ваша помощь в том, как продолжить обновление сервера до последней версии, сохранив при этом все выполненные мной настройки.

Меня особенно беспокоят изменения базы данных, поскольку я полагаю, что могу сделать резервную копию обновленных сценариев босса, выполнить git pull и снова заменить их перед сборкой (я должен сделать форк после, я не думал об этом) ... Но В любом случае, я был бы чрезвычайно благодарен, если бы вы могли вести меня шаг за шагом, учитывая, что я использую установку докера.

Для всего, что связано с базой данных, я использую Heidi SQL, поэтому я могу использовать его для любой процедуры базы данных. Я не очень разбираюсь в SQL-запросах, но могу импортировать файлы .sql по мере необходимости.

Я понимаю, что прошу многого, поэтому, пожалуйста, не надо сразу отвечать. Я буду очень благодарен, если вы поможете мне, когда у вас будет такая возможность.

Спасибо за уделенное время :)

Ответы

3 FrancescoBorzi Aug 20 2020 at 04:49

Я постараюсь ответить на все упомянутые вами моменты:

1. Скрипты босса.

Худшее, что может случиться, - это конфликт слияния при извлечении последних изменений с помощью git. Так что вам придется решать их вручную. Это не обязательно сложно, особенно в вашем случае. Это просто сценарии босса, поэтому по своей природе они довольно самодостаточны, и вы наверняка ничего не сломаете, когда возитесь с ними.

2. Модули

С модулями проблем быть не должно. Модули существуют именно по этой причине: они изолированы и не вызывают проблем при обновлении ядра и т.п.

Меня беспокоит только тот модуль, который потребовал изменения ядра. Я не знаю, какой модуль вы установили, обычно этого не должно происходить. Правильный модуль AzerothCore не требует каких-либо изменений ядра. Однако, опять же, худшее, что у вас может быть, - это конфликты слияния git, я надеюсь, ничего особенного (зависит от того, насколько большими и агрессивными были эти изменения, требуемые модулем).

3. Пользовательские изменения базы данных.

Золотое правило: всегда храните где-нибудь свои пользовательские запросы SQL, чтобы их можно было легко применить повторно. Например, всегда использовать DELETEраньше INSERT, по UPDATEвозможности предпочитать и т. Д.

Итак, все, что вам нужно, это файл (или несколько файлов), содержащий весь ваш код SQL, соответствующий внесенным вами изменениям. Если у вас его нет, вы все равно можете извлечь его из своей БД.

Затем вы всегда можете повторно применить их после обновления ядра, если считаете, что это необходимо. Также может случиться так, что вам вообще не нужно повторно применять их. Или, может быть, вы хотите начать с новой базы данных мира AzerothCore и повторно применить свои изменения. Это действительно зависит от конкретного случая, но в любом случае у вас все будет хорошо (пока вы сохраняете свои изменения в файлах SQL).

Вы можете использовать Keira3 для редактирования своей базы данных или просто извлекать изменения, если это необходимо. Например, вы можете открыть объект и скопировать его «полный запрос».

Сначала резервное копирование

Перед началом процедуры обновления создайте резервную копию:

  • ваша БД
  • исходные файлы, которые вы изменили (например, боссы и т. д.)

Обновляйте часто!

Однако я никогда не обновлял сервер с тех пор, как впервые установил его в прошлом году (декабрь 2019 г.).

Это совсем не рекомендуется! Вы должны регулярно обновлять AzerothCore (не реже одного раза в неделю). Для этого есть много веских причин, одна из них: будет намного проще, если вы будете делать это часто.

Как обновить AzerothCore при использовании Docker

Общий вопрос об обновлении AC с помощью Docker уже задавался здесь: Как обновить контейнер докеров azerothcore-wotlk