Ru-MaNGOS

Вернуться   Ru-MaNGOS > Документация > Новичкам

Важная информация

Новичкам Информация для всех новичков, новичкам рекомендуется задавать свои вопросы здесь

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 07.03.2010, 16:16   #1
DeusModus
Администратор
 
Аватар для DeusModus
 
Регистрация: 07.03.2010
Адрес: Питер.
Сообщений: 69
Сказал(а) спасибо: 66
Поблагодарили 102 раз(а) в 15 сообщениях
Записей в дневнике: 12
DeusModus отключил(а) отображение уровня репутации
По умолчанию Обновление БД(пример)

упрощенно ревизия=версия

для удобства используйте Упордочить Значки->По Имени в папках с sql обновлениями


БД= База Данных


Прежде, чем начать:
  • Определите номер вашей текущей ревизии сервера MaNGOS
  • Определите, под какую ревизию MaNGOS у вас БД.
  • Я буду обьяснять на примере. Моя ревизия ядра- 4800

Моя ревизия базы данных(на просторах интернет нашел Super_Unknown_MaNGOS_DB_for_4714.rar)- 4714.

Что я хочу: получить самую новую версию сервера.

Часть 1: Через Папки к Обновлению


Наш путь начинается с обращения к папке, где хранятся SQL-обновления:

Ваш путь до исходников MaNGOS/sql/updates

В этой папке мы видим множество файлов с расширением .sql и несколько папок вида 0.<число>.

Теперь нам необходимо найти первый SQL апдейт для баз
  1. mangos
  2. characters
  3. realmd

Ищем sql файлы >4714(больше номера ревизии нашей БД).
И не находим. Далее ищем по папкам.
Нужный нам файл лежит в /sql/updates/0.9/ и называется

4718_mangos_uptime.sql

Применяем его к таблице Базе Данных mangos.

К БД mangos, потому что имя sql файла строится таким образом:

<РЕВИЗИЯ> _ <БД> _ <ТАБЛИЦА _ КОТОРУЮ _ ЗАТРАГИВАЕТ> . sql

Ищем следующий .sql файл. Теперь уже нам нужен номер > 4718

Это 4737_mangos_command.sql. Обратите внимание, его тоже необходимо применить на БД mangos.
Следующий апдейт - 4764_characters_auctionhouse.sql. И.. правильно! Его необходимо применить на БД characters. Браво!

Входим в цикл: {Запомнить текущий SQL файл => Найти SQL файл, начинающийся с большей цифры => применить}.

Часть 2: Берем выше


Когда БД вашего сервера станет 4842(ведь последний апдейт в папке 0.9 это 4842_mangos_quest_template.sql), настанет время выйти за пределы этой папки и перейти в следующую... Правильно! Следующую по номеру. В нашем случае это 0.10.

Но вот незадача, файлы
4846_mangos_creature_template.sql
4846_mangos_item_template.sql
4846_mangos_npc_option.sql

Имеют одинаковые номера. Однако это не должно вас смутить! Помните упомниание о том, как строятся названия sql-апдейтов в MaNGOS? Да, именно, эти обновлени затрагивают три разные таблицы. Они не пересекаются. Ставим в любом порядке и двигаемся дальше.

Входим в цикл: {Запомнить текущий SQL файл => Найти SQL файл, начинающийся с большей цифры => применить}.

Часть 3: Абсолют

Итак, вы полностью применили обновления из папок 0.9, 0.10,(вы ведь двинулись дальше?).
На текущий момент у вас должна быть ревизия 6351.
Переходим в папку 0.11. По каким-то неведомым причинам sql файлы здесь называются иначе. Но это не проблема для нас!

На ближайшие десять минут запомните(потом придется забыть), что на самом деле имя sql файла строится следующим образом:


0<РЕВИЗИЯ>_<БД>_<ТАБЛИЦА_КОТОРУЮ_ЗАТРАГИВАЕТ>.sql
И ноль это не ошибка. Применяем файлы с
06360_characters_characters.sql
по
06760_mangos_creature_template.sql

Затем применяем апдейты вида
2008_х_х_х_(База_Данных)_(Табли а).sql

Они импортируются в порятке возрастания, т.е. сначала 2008_10_18_01_characters_characters.sql, потом 2008_10_18_02_mangos_spell_proc_event.sql и так далее.
После того, как все обновления из папки 11 установлены переходим в дирректорию на уровень выше(/sql/updates).
Это главная папка с обновлениями. Импортируем сначала .sql файлы вида
2008_х_х_х_(База_Данных)_(Табли а).sql
Первый файл такого вида- 2008_12_22_01_mangos_creature_equip_template.sql

а затем
(НОМЕР_РЕВИЗИИ_ЯДРА)_(НОМЕР_ОБНОВЛЕНИЯ)_(БД)_(ТАБЛИЦА).sql
Первый файл такого вида- 6936_01_mangos_spell_chain.sql.


Вот и всё! Мы обновили БД с версии 4714 до 8104(в моём случае) без каких либо проблем.
DeusModus вне форума   Ответить с цитированием
Старый 26.07.2010, 07:17   #2
RabinoVich
Гость
 
Сообщений: n/a
По умолчанию Нюансы относительно обновления БД

Прежде чем начать накладывать на БД обновления, хотелось бы уточнить некоторые моменты у специалистов этих дел, дабы не убить базы.

Что сделал:
1. Скачал я с репозитория исходники мангоса, собрал ядро, зашел в папку mangos/sql
2. С помощью create_mysql.sql создал таблицы
3. С помошью characters.sql и realmd.sql заполнил таблицы characters и realmd
3. mangos.sql заливать не стал, вместо этого залил файл YTDB_0.13.5_R550_MaNGOS_R10023_SD2_R1706_ACID_R304 _RuDB_R37.7, самый свежий на данный момент, взял с репозитория YTDB
4. Перешёл в папку ScriptDev2/sql
5. Файлом scriptdev2_create_database.sql создал таблицу
6. Файлами scriptdev2_create_structure_mysql.sql и scriptdev2_script_full.sql заполнил таблицу

Вопросы:
1. Как определить нынешние ревизии баз characters, realmd и ScriptDev2, чтобы относительно её продолжить их дальнейшее обновление?
2. Или же они на данный момент находятся в максимальной ревизии после моих действий?
3. На данный момент ревизия моего ядра - 12340, а самое последнее обновление для БД, скачанное, естественно с того же репозитория имеет ревизию 10270. Если я не ошибаюсь, то ревизии ядра и базы должны совпадать. Что делать?
4. В ропозиториях YTBD и mangos можно встретить обновления одиинаковых версий, я правильно полагаю, что разницы откуда ставить нет? Но в репозитории мангоса они обычно свежее

З.Ы. Спасибо за мануал по обновлению БД

З.З.Ы. ответ на вопрос 1 нашел сам - в БД нужно лишь найти таблицу, содержащей db_version
З.З.З.Ы. практика показал, что даунгрейд сделать нельзя, главное не ошибится и ставить одновления строго по порядку

Последний раз редактировалось RabinoVich; 26.07.2010 в 09:18.
  Ответить с цитированием Полученное нарушение
Старый 26.07.2010, 09:54   #3
timmit
YTDB Dev
 
Регистрация: 01.02.2010
Сообщений: 115
Сказал(а) спасибо: 0
Поблагодарили 36 раз(а) в 25 сообщениях
timmit На верном пути
По умолчанию

1. Посмотреть db_version, для каждой есть она.
3. Посмотреть таблицу db_version и начать накатывать апдейты из mangos/sql к тебе, до нужной ревизии по порядку. (для мангос 4 столбец этой таблицы)
4. Потому что мангос постоянно обновляется, база раз в неделю - куда включаются все обновления на мангос,чарактерс, реалмд за неделю. Можете в принципе ждать до апа.

p.s текущая ревизия базы 557, у вас 550 фул.. накатывайте с svn апдейты, там уже все ядерные включены (сначала ядерные апдейты, затем сам апдейт базы по порядку ревизий)
timmit вне форума   Ответить с цитированием
Старый 26.07.2010, 10:27   #4
RabinoVich
Гость
 
Сообщений: n/a
По умолчанию

3. Я поставил пакет 550, потом довел до 557го патчами, потом стал поднимать дальше из папки mangos/sql до 10270
  Ответить с цитированием
Старый 26.07.2010, 15:06   #5
tempura
Forum bot
 
Аватар для tempura
 
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
tempura отключил(а) отображение уровня репутации
По умолчанию

Последний вариант - все-таки запустить сервер, и прочесть в логе ошибку. Там будет указано, что именно не хватает и что делать.
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки.
tempura вне форума   Ответить с цитированием
Старый 30.07.2010, 10:45   #6
Near
Гость
 
Сообщений: n/a
Вопрос

К примеру:

Код:
2010-07-29 14:29:33 ERROR: [A] You have: --> `10244_01_mangos_command.sql` 
2010-07-29 14:29:33 ERROR: 
2010-07-29 14:29:33 ERROR: [B] You need: --> `10270_01_mangos_reputation_spillover_template.sql'

накатывая апдейт
10270_01_mangos_reputation_spillover_template.sql
он выдает ошибку:


Код:
[Err] 1054 - Unknown column 'required_10263_03_mangos_pool_pool' in 'db_version' 
[Msg] Finished - Unsuccessfully
накатываю апдейт выше 10244 т.е. 10256_01_mangos_command.sql
тоже выдает ошибку:

Код:
[Err] 1054 - Unknown column 'required_10252_01_mangos_reputation_reward_rate' in 'db_version' 
[Msg] Finished - Unsuccessfully
  Ответить с цитированием
Старый 30.07.2010, 11:48   #7
LordJZ
Супер-модератор
 
Аватар для LordJZ
 
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
LordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранита
По умолчанию

Апдейт выше 10244 это 10251. Чем вы смотрели?
LordJZ вне форума   Ответить с цитированием
Старый 30.07.2010, 13:26   #8
Near
Гость
 
Сообщений: n/a
По умолчанию

До меня дошло. Спасибо.
  Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[10038][patch] Empowered renew (Усиленное обновление) Insider42 Принятые патчи 1 06.06.2010 20:54
[UpdateFields.h] Пример парсинга Gerald WWW 1 14.03.2010 01:13


Текущее время: 06:22. Часовой пояс GMT +3.


ru-mangos.ru - Русское сообщество MaNGOS
Главная цель проекта MaNGOS - обучающая, поэтому разрешается использовать исходный код и собранную программу только для образовательных целей.
Вы не можете использовать MaNGOS в коммерческих целях, а также не разрешается устанавливать публичные серверы на базе MaNGOS.
Любое копирование материалов, информации в любом виде без указания источника - форума Ru-MaNGOS будет считаться нарушением авторских прав и нарушением Уголовного Кодекса РФ, ст. 146 ст. 147.
Перевод vBulletin: zCarot