Вообще то эту статью я писал для пользователей CMS InstantCMS, и называлась она "Конвертирование баз SQL при переходе на версию InstantCMS 1.10". Однако CMS меняются, происходит миграция с одной CMS на другую, а принципы конвертации баз пока остаются прежними, поэтому статья будет полезной.

При миграции движка InstantCMS с версии 1.9 на версию 1.10 предлагается сразу конвертор базы данных SQL. У многих миграция с кодировки 1251 на UTF8 прошла без проблем, но у меня вылезали постоянно глюки. То не было категорий с статьями, то категории были, но вместо статей выходило белое поле. В общем решил я, чтобы была чистая установка. Вот что сделал я. В первую очередь необходимо удалить все левые расширения: модули, плагины и т.д. Также удаляются файлы им принадлежащие. Устанавливается по умолчанию дефолтный шаблон. Далее делается бэкап базы данных SQL и файлов. Для файлов удобно сделать поддомен и скопировать файлы туда. Удаляем из директории установленные ранее файлы и папки и оставляем только Imaje, Upload и, конечно, папку поддомена. Создаем новую базу SQL. Устанавливаем InstantCMS версии 1.10, цепляя при установке новую базу данных. После установки удаляем папки Install и Migrate. Настраиваем сайт. Шаблон должен стоять дефолтный (который идет вместе с CMS). Заходим на панели управления сайтом в phpMyAdmin.

conv sql cp1251 to utf8 001

Выбираем предыдущую базу данных - видим, что она в кодировке 1251. Справедливости ради стоит заметить, что в моем случае использовалась промежуточная база данных после кодировки во время миграции, но сути дела это не меняет, так как при миграции многие таблицы остались в кодировке 1251, а не в UTF8.

conv sql cp1251 to utf8 002

Выбираем таблицу, для импортирования ее в новую базу. При импортировании напрямую старой базы в новую, у меня вылезла ошибка, поэтому пришлось делать импорт потаблично. Необходимо выставить показать от 0 до 100. Но я выставлял от 0 до 1000 - зависит от мощности хостинга и вашей локальной машины, с которой вы заходите в панель управления. Если выставить слишком много строк на обработку сервер может зависнуть, с другой стороны - чем больше строк, тем быстрее можно все перекинуть.

conv sql cp1251 to utf8 003

Выделяем все строки. Если вы выбрали много строк, то сервер сам может разбить на страницы. Важно, что необходимо выделять все, так как может экспортироваться только видимая часть.

conv sql cp1251 to utf8 004

Вверху в списке действий выбираем "Экспорт". Лучше экспортировать таблицу на сервере - быстрее.

conv sql cp1251 to utf8 005

Далее выбираем новую базу данных.

conv sql cp1251 to utf8 006

Выбираем название таблицы, которую мы экспортировали из старой базы данных.

conv sql cp1251 to utf8 007

Выбираем в операциях импорт и импортируем с сайта таблицу из старой базы. Итак, все таблицы. Процесс трудоемкий, но не бесконечный.

conv sql cp1251 to utf8 008

Сопоставление phpMyAdmin должно быть utf8_general_ci.

conv sql cp1251 to utf8 009

Проверяем таблицы в новой базе данных. Если есть таблицы не в кодировке utf8_general_ci, то выбираем таблицу, далее выбираем "Операции".

conv sql cp1251 to utf8 010

Выставляем сравнение utf8_general_ci и нажимаем "Ок". После всего этих операций все работает нормально.