VBsupport перешел с домена .ORG на родной .RU
Ура!
Пожалуйста, обновите свои закладки - VBsupport.ru
Блок РКН снят, форум доступен на всей территории России, включая новые терртории, без VPN
На форуме введена премодерация ВСЕХ новых пользователей
Почта с временных сервисов, типа mailinator.com, gawab.com и/или прочих, которые предоставляют временный почтовый ящик без регистрации и/или почтовый ящик для рассылки спама, отслеживается и блокируется, а так же заносится в спам-блок форума, аккаунты удаляются
Если вы хотите приобрести какой то скрипт/продукт/хак из каталогов перечисленных ниже: Каталог модулей/хаков
Ещё раз обращаем Ваше внимание: всё, что Вы скачиваете и устанавливаете на свой форум, Вы устанавливаете исключительно на свой страх и риск.
Сообщество vBSupport'а физически не в состоянии проверять все стили, хаки и нули, выкладываемые пользователями.
Помните: безопасность Вашего проекта - Ваша забота. Убедительная просьба: при обнаружении уязвимостей или сомнительных кодов обязательно отписывайтесь в теме хака/стиля
Спасибо за понимание
Уже больше шести лет на моем сайте крутятся форумы на "3.00 Gold" Вобле. За это время код, естественно, был весь перепахан. Вовремя не обновился и оказался лишен возможности использования плагинов, а потом было просто жалко терять все доработки, да и времени, особо, не было. Потом ждал 4-ку, потом еще чего-то, но вот вышла 4.1.4 с вшитым CKEditor-ом и это меня сломило.
Решил переходить, не взирая на то, что все доработки придется переписывать снова, хотя, как оказалось, очень многое уже реализовано.
Итак, переходить решено с cp1251 на UTF-8, чтоб уже не заморачиваться с кодировками в дальнейшем.
После перехода не удалось сохранить фотографию из профиля пользователя (не аватару) и папки пользователя с подписками и с письмами (подписки и письма не пострадали, просто оказались в одной куче)
Для перехода понадобится два дистрибутива. Какой-нибудь из старших троек, у меня оказался 3.8.4 и собственно 4.1.4. Это связано с тем, что 3.0 сразу до четверки не обновить.
Внимание!!! Если у Вас вложения хранятся в базе, переведите их в файловую систему. (Идут постоянные споры, как надо хранить BLOB-ы в файлах или базе, эта ситуация яркий пример почему надо хранить в файловой системе.)
Удалите или перенесите нафиг все от старого форума, оставьте только папки с вложениями аватарами и т. п. У меня это все лежало в папке "images", я только ее и оставил
Загружаем с заменой (заменяться будут только всякие смайлики иконки и т. п. с совпадающими названиями, но они нам не нужны - смело заменяем) дистрибутив фрума VB версии 3.8.4 (или другой старшей трешки)
Получаем три файла tables1.sql, tables2.sql и tables3.sql в кодировке UTF-8
Обратите внимание, что в бекап не включена таблица "word", она в новой версии не нужна, все придется переиндексировать заново
Последовательно меняем в файлах дампа слово "cp1251" на "utf8"
Создаем новую БД, назовем ее, например, "forum_vb4". Создаем ее в кодировке "utf8_general_ci"
Загружаем последовательно в нее наши дампы
mysql -u VB_USER -p --default-character-set=utf8 forum_vb4 < tables1.sql
---------------
mysql -u VB_USER -p --default-character-set=utf8 forum_vb4 < tables2.sql
----------------
mysql -u VB_USER -p --default-character-set=utf8 forum_vb4 < tables3.sql
----------------
Создаем в папке "icludes" файл config.php с нужными настройками соединения с БД и в конце файла раскомментируем строку "$config['Mysqli']['charset'] = 'utf8';"
(Этот шаг можно пропустить, если не меняли папку установки) В таблице setting находим в поле "value" путь, где хранятся файлы вложений и меняем его на нужный нам
В таблице language меняем поле "charset" с "Windows-1251" на "UTF-8"
Запускаем /install/upgrade.php
Если вываливается ошибка "Invalid SQL:SELECT varname, value, datatype FROM setting; MySQL Error : Unknown column 'datatype' in 'field list' "
То выполняем в базе SQL:
------ ALTER TABLE TABLEPREFIX_setting ADD datatype ENUM('free', 'number', 'boolean', 'bitfield', 'username') NOT NULL DEFAULT 'free'
------
Запускаем снова install/upgrade.php
В процессе нас просят не забыть после окончания установки переместить все вложения в БД, а потом вернуть в файловую систему. Иначе они не будут отображаться. НЕ ЗАБЫТЬ!!!!
По окончании установки перемещаем вложения в базу и обратно (довольно быстрый процесс)
Для решения проблемы со входом в личный кабинет (папки сообщений озаглавлены по русски) выполняем SQL :
--------- UPDATE `TABLEPREFIX_usertextfield` SET subfolders = '', pmfolders = '' --------- (очищаем проблемные поля)
Загружаем дистрибутив поверх п 4.1.3
Обновляем (install/upgrade.php)
По окончании установки надо обновить счетчики. Что и где обновлять написоно в конце установки.
Обязательно перестоить миниатюры вложений. В админке в "Обслуживание -> Обновление счётчиков -> Перестроить миниатюры вложений. Перестроить (довольно долгий процесс)
Ну вот и все. Работа долгая, т. ч. готовтесь, особенно, если данных много.
Теперь начинаю ковырять систему модулей на 4-ке.
Буду рад, если кому-то помог.
К сожалению, не могу здесь часто появляться. По этому прошу прощения, если не смогу сразу ответить на какие-то вопросы, хотя старался описАть все максимально подробно.
С уважением ко всем, Михаил.
MKproff добавил 16.06.2011 в 21:32
Не могу исправить в первом посте.
Пункт №19 "Загружаем дистрибутив 4.1.4 поверх 3.8.4"
Last edited by MKproff : 06-16-2011 at 10:32 PM.
Reason: Добавлено сообщение
Тиджик добавил 17.06.2011 в 01:33
Легче всего перекодировать базу с помощью Sypex Dumper
Last edited by Тиджик : 06-17-2011 at 02:33 AM.
Reason: Добавлено сообщение
@MKproff
Продвинутый
Join Date: Jun 2011
Posts: 41
Версия vB: 4.1.x
Reputation:
Опытный 84
Репутация в разделе: 76
1
Quote:
Originally Posted by Тиджик
Легче всего перекодировать базу с помощью Sypex Dumper
Забыл написать:
п. 7 Последовательно меняем в файлах дампа слово "cp1251" на "utf8" на Linux это делается с помощью "sed" sed -i~ 's/cp1251/utf8/g' tables1.sql tables2.sql tables3.sql
При этом, на всякий случай создаются, новые файлы, а старые переименовываются с добавлением постфикса "~" Вот как-то так: "tabless3.sql~"
MKproff, хорошая тема. Но случай, описанный Вами, уж больно экзотичен. Чтобы одновременно и переход с довольно старой линейки на самую свежую 4ку и смена кодировки... поэтому подробное обсуждение Вашей статьи считаю ненужным. Если у кого-то будет аналогичный случай, думаю, Ваша инструкция пригодится.
Если Вы сделаете подробную пошаговую инструкцию, как обновиться с 3.8 на 4.1.4 и уделите внимание проблемам, которые при этом могут возникнуть, и решению этих проблем - вот это будет замечательно.
MKproffЕсли Вы сделаете подробную пошаговую инструкцию, как обновиться с 3.8 на 4.1.4 и уделите внимание проблемам, которые при этом могут возникнуть, и решению этих проблем - вот это будет замечательно.
Не знаю, может мне повезло, но проблем небыло никаких, все прошло идеально гладко. Основной совет, запастись временем и сделать все сначала на дубле (копии) форума и базы, отработать тактику и решить все проблемы с именно Вашим форумом. И ничего страшного и.
Удачи всем!