Сконвертировал базу данных…

Возникла у меня в голове сегодня бредовая идея переделать всю базу блога в одну кодировку.

С горем пополам это удалось процентов на 90. Полетела начисто кодировка таблицы тегов (стояла там latin_swedish) и при попытке изменить ее на utf все становилось вопросиками. Долго изголялся так и эдак чтобы импортировать все нормально. пришлось пожертвовать таблицей и сменить кодировку принудительно. Также не преобразовалась кодировка базы wordtube — придется тоже ручками править. Как все доведу до ума опишу что делал…

Но самое главное заработало наконец : регистронезависимый поиск :)

Итак, что же я сделал для преобразования:

  1. сделал дамп базы из phpmyadmin
  2. сделал дамп базы из wordpress (отметив галками дополнительные таблицы)
  3. удалил все таблицы с кодировкой latin1_swedish_ci из базы блога, КРОМЕ таблиц плагинов wordtube и simpletagging (они остались в старой кодировке). Почему — см.далее
  4. открыл в текстовом UTF8-редакторе дамп, сделанный в wordpress. Заменил все слова latin1 на utf8
  5. импортировал в phpmyadmin этот измененный дамп. При импорте ошибок не выдало.
  6. открыл блог. Увидел что ругается на таблицу тегов. Зашел в phpmyadmin и очистил таблицу тегов, а также выставил везде кодировку соттветствия utf8_general_ci
  7. таблицы тегов и плагина wordube присутствовали в дампе вордпресса, НО почему то не импортировались вместе со всем блогом. Открыл в текстовом UTF8-редакторе повторно переделанный дамп базы и нашел там куски где создается таблица тегов и мультимедиа-файлов. сохранил в отдельный текстовый фал и его импортировал. все стало нормально.

что удивительно, вроде бы оба дампа в кодировке utf-8, но в дампе phpmyadmin’а русские символы выглядели так:

Раздобыл диск с лучшими видеоклипами Moby! Кайфую по полной! Вот один из клипов, ранее его не видел еще. 11мбайт.

а в дампе вордпресса так:

Раздобыл диск с лучшими видеоклипами Moby! Кайфую по полной! Вот один из клипов

UPDATE 2007-11-06

вот еще вариант если у вас такие же кракозябры, но в базе вроде бы написано уже utf8_general_ci

1. надо было поставить оригинальный вп231(или изтой ветки что у вас сейчас стоит)
2. в вп-конфиг (от оригинального вп231(или изтой ветки что у вас сейчас стоит)) закоментировать строку define(‘DB_CHARSET’, ‘utf8’);
3. блог бы открылся почти нормально на 99%
4. поставить плагин wp-db-backup и ИЗ НЕГО сделать дамп базы
5. убить таблицы в базе
6. вернуть на место строку define(‘DB_CHARSET’, ‘utf8’);
7. залить новый дам сделанный из админки через phpmyadmin
все
после этого база будет правильная и будет работать с обеими сборками как maxsite.org так и оригинальной

Связанные записи

7 комментариев на запись “Сконвертировал базу данных…”

  1. Flake 28 июля 2007 в 12:15

    А я поступил до ужаса тупо, но сработало :). В текстовом файле дампа после каждой таблицы заменил latin1 на utf-8, после чего опять загрузил дамп в базу (которая, конечно должна быт в utf8) и все заработало, ничего не перекосилось и не потерлось.

  2. Lecactus 28 июля 2007 в 15:05

    я тоже так поступил, НО частично, т.к. мой случай был посложнее. скоро допишу как все было :)

  3. Lecactus 30 июля 2007 в 11:39

    добавил в запись: описал все что делал с базой

  4. Lecactus 6 ноября 2007 в 22:03

    Обновил статью — может пригодится кому

  5. Fist 4 декабря 2007 в 22:48

    А никто не подскажет как или каким редактором можно перекодировать символы в дампе вида РЅРѕРѕР±СЂР в нормальный читаемый русский?

  6. Lecactus 4 декабря 2007 в 22:56

    А никто не подскажет как или каким редактором можно перекодировать символы в дампе вида РЅРѕРѕР±СЂР в нормальный читаемый русский?

    воспользуйтесь редактором http://lecactus.ru/2007/06/19/465/

  7. В Иванов 3 декабря 2008 в 10:06

    Ты — лучший! :) Уже казалось, что все базы вывел из рискового состояния, но вот сегодня опять довелось бороться с наследием (плюс эксплойтом). Вроде справился.