Перенос БД SMF с PostgreSQL на Mysql

Автор kharkov_max, 06 ноября 2012, 11:20:54

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

kharkov_max

Добрый день.

Был установлен SMF на PostgreSQL, форум ожил появились пользователи и т.д.
В разрезе форума все работает, но возникла необходимость подключать новые плагины интегрировать с CMS и начались проблемы. Большинство плагинов просто не поддерживают PostgreSQL, а постоянно "лепить горбатого" не совсем хочется.

Теперь вопрос как перенести базу данных и перевести сам форум с PostgreSQL на Mysql.
Запускать с нуля не вариант ...
Может у кого есть опыт, поделитесь информацией или соображениями ...

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

Спасибо ...

digger®

Цитата: kharkov_max от 06 ноября 2012, 11:20:54
Добрый день.

Был установлен SMF на PostgreSQL, форум ожил появились пользователи и т.д.
В разрезе форума все работает, но возникла необходимость подключать новые плагины интегрировать с CMS и начались проблемы. Большинство плагинов просто не поддерживают PostgreSQL, а постоянно "лепить горбатого" не совсем хочется.

Теперь вопрос как перенести базу данных и перевести сам форум с PostgreSQL на Mysql.
Запускать с нуля не вариант ...
Может у кого есть опыт, поделитесь информацией или соображениями ...

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

Спасибо ...
Делаете дамп с базы PostgreSQL, вручную правите синтаксис до понятного MySQL, заливаете дамп в базу MySQL. Муторно, но в общем то, реально.

Ну или что-нибудь типа http://dbconvert.com/ru/convert-mysql-to-postgresql-pro.php

kharkov_max

#2
С самой БД понятно, либо конвертер либо править дамп.
А что делать с самим форумом ?
Ведь, наверное, некоторые запросы в файлах PHP отличаются для postgre и mysql ...
Ну и конечно наверное какой то конектор должен быть другой ...

PS
А не получится так сделать,
Поднимаем новый форум на mysql, потом делаеми дамп данных из postgre (именно данных а не структуры), правим дамп с данными под mysql и заливаем на mysql. Потом копируем с заменой файлы форума на новый форум ...

Просто если править полный дамп базы из Postgre, то можно будет застрелится ...
А тузлы конверторы или платные или старые или кривые ...

digger®

Цитата: kharkov_max от 06 ноября 2012, 14:49:20
С самой БД понятно, либо конвертер либо править дамп.
А что делать с самим форумом ?
Ведь, наверное, некоторые запросы в файлах PHP отличаются для postgre и mysql ...
Ну и конечно наверное какой то конектор должен быть другой ...
Это одна строчка в настройках, которая задает какой коннектор подключать.
А лучше поставить чистый форум на MySQL и туда влить свой дамп.

Цитировать
PS
А не получится так сделать,
Поднимаем новый форум на mysql, потом делаеми дамп данных из postgre (именно данных а не структуры), правим дамп с данными под mysql и заливаем на mysql.
Получится. Можно даже не все подряд дампить, а только таблицы где сообщения/темы/разделы/юзеры...


kharkov_max

Как думаете при помощи этого http://www.lightbox.ca/pg2mysql.php получится причесать дамп с данными?


kharkov_max

Решил пойти таким путем.

1. Сделал дамп из PostgreSQL только данных.
    Пришлось в файле дампа кое-что поудалять специфичное для postgre ...
2. Установил новый форум в соседник каталог forum2 на Mysql, благо плагинов не было (меньше править SQL)....
3. Выгрузил из mysql базу без данных.
4. Объеденил 2 файла дампа cat ./dump_postgre > ./dump_mysql
5. Начал грузить из собраного дампа в mysql, в процессе пришлось удалить в данных одну таблицу плагина (пытался как то ставить и плагин создал доп таблицы, в оригинальной базе их нет), и пришлось отказаться от загрузки таблицы со смайлами т.к. там в дампе '>\' и т.д.
6. Переключил форум на mysql  - все завелось ...

Единственная проблема это кодировка.
В PostgreSQL utf8, в mysql utf8, локаль koi8-r.
В результате все что загрузилось пошло кракозяброй ... Т.е. все что на русском... С английским  все ок.

Подскажите пожалуйста как оперативно решить проблему ...
Пока форум поставил на обслуживание ...

Спасибо ...


digger®

Цитата: kharkov_max от 07 ноября 2012, 11:15:09Единственная проблема это кодировка.В PostgreSQL utf8, в mysql utf8, локаль koi8-r.В результате все что загрузилось пошло кракозяброй ... Т.е. все что на русском... С английским  все ок.
Локаль чья koi-8?
В Sypex Dumper выбираете в импорте кодировку utf8, ставите галку "исправлять кодировку" и заливаете.

kharkov_max

#8
Решил вопрос с кодировкой...

Перевел локаль в UTF8, перезагрузил данные, вроде все нормально.
Видимо при загрузе в mysql русский не читался т.к. локаль была не UTF8.

PS.
Можно сказать что удачно переехал.
Перешерстил все настройки и возможности форума, вроде все работает.

Думаю что мой опыт будет кому-то полезен.

Для информации, может кто попадет.
На PostgreSQL не работает рассылка уведомлений (в новостях), как минимум в версии форума 2.0.2
Выдает ошибку SQL запроса при изменении групп получателей.
Сильно вникать не стал - но это факт.

На mysql все заработало без граблей.

Собственно выводы.
SMF может работать и работает на базе PostgreSQL, но если в дальнейшем нужна будет модернизация форума плагинами или интеграция в CMS, то использование БД PostgreSQL создаст неописуемое кол-во проблем,
т.к. большинство плагинов фич и т.д. писано под mysql.