|
Новичкам Информация для всех новичков, новичкам рекомендуется задавать свои вопросы здесь |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
07.03.2010, 16:16 | #1 |
Администратор
Регистрация: 07.03.2010
Адрес: Питер.
Сообщений: 69
Сказал(а) спасибо: 66
Поблагодарили 102 раз(а) в 15 сообщениях
Записей в дневнике: 12
|
Обновление БД(пример)
упрощенно ревизия=версия для удобства используйте Упордочить Значки->По Имени в папках с sql обновлениями БД= База Данных Прежде, чем начать:
Моя ревизия базы данных(на просторах интернет нашел Super_Unknown_MaNGOS_DB_for_4714.rar)- 4714. Что я хочу: получить самую новую версию сервера. Часть 1: Через Папки к Обновлению Наш путь начинается с обращения к папке, где хранятся SQL-обновления: Ваш путь до исходников MaNGOS/sql/updates В этой папке мы видим множество файлов с расширением .sql и несколько папок вида 0.<число>. Теперь нам необходимо найти первый SQL апдейт для баз
Ищем 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(в моём случае) без каких либо проблем. |
26.07.2010, 07:17 | #2 |
Гость
Сообщений: 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 |
YTDB Dev
Регистрация: 01.02.2010
Сообщений: 115
Сказал(а) спасибо: 0
Поблагодарили 36 раз(а) в 25 сообщениях
|
1. Посмотреть db_version, для каждой есть она.
3. Посмотреть таблицу db_version и начать накатывать апдейты из mangos/sql к тебе, до нужной ревизии по порядку. (для мангос 4 столбец этой таблицы) 4. Потому что мангос постоянно обновляется, база раз в неделю - куда включаются все обновления на мангос,чарактерс, реалмд за неделю. Можете в принципе ждать до апа. p.s текущая ревизия базы 557, у вас 550 фул.. накатывайте с svn апдейты, там уже все ядерные включены (сначала ядерные апдейты, затем сам апдейт базы по порядку ревизий) |
26.07.2010, 10:27 | #4 |
Гость
Сообщений: n/a
|
3. Я поставил пакет 550, потом довел до 557го патчами, потом стал поднимать дальше из папки mangos/sql до 10270
|
26.07.2010, 15:06 | #5 |
Forum bot
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
|
Последний вариант - все-таки запустить сервер, и прочесть в логе ошибку. Там будет указано, что именно не хватает и что делать.
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки. |
30.07.2010, 10:45 | #6 |
Гость
Сообщений: 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 тоже выдает ошибку: Код:
[Err] 1054 - Unknown column 'required_10252_01_mangos_reputation_reward_rate' in 'db_version' [Msg] Finished - Unsuccessfully |
30.07.2010, 13:26 | #8 |
Гость
Сообщений: n/a
|
До меня дошло. Спасибо.
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
[10038][patch] Empowered renew (Усиленное обновление) | Insider42 | Принятые патчи | 1 | 06.06.2010 20:54 |
[UpdateFields.h] Пример парсинга | Gerald | WWW | 1 | 14.03.2010 01:13 |