1

Тема: HOWTO: Миграция PunBB 1.3 с MySQL на PostgreSQL в CentOS 5

Сегодня я успешно завершил миграцию PunBB версии 1.3.4 с MySQL на PostgreSQL в CentOS 5.

Версии программного обеспечения:

  • PunBB: 1.3.4

  • MySQL: 5.0.77

  • PostgreSQL: 8.1.18

  • PHP: 5.1.6

Для выполнения миграции выполните следующие действия:
1. Удалите все расширения PunBB.

2. Создайте дамп существующей базы данных MySQL:

mysqldump forum --compatible=postgresql --default-character-set=utf8 --skip-extended-insert -u root -p > forum_old.sql

3. Извлеките из дампа данные таблиц базы данных, но не ее структуру:

grep "INSERT INTO" forum_old.sql > forum_old_converted.sql

4. Создайте в PostgreSQL пользователя и новую базу данных:

postgres=# CREATE USER "forum" with password 'super_password';
postgres=# CREATE DATABASE "forum" ENCODING 'UTF-8' OWNER "forum";

5. Удалите config.php с DocumentRoot Вашего сайта.

6. Создайте таблицы в базе данных PostgreSQL. Для этого выполните install.php и следуйте дальнейшим инструкциям.

7. Загрузите config.php в DocumentRoot Вашего сайта.

8. Сделайте дамп схемы базы данных PostgreSQL без данных таблиц:

pg_dump forum --create --schema-only -U user_name -h 127.0.0.1 > forum_new_schema.sql;

9. Пересоздайте базу данных PostgreSQL без данных в таблицах:

postgres=# DROP DATABASE "forum";
psql forum -U user_name -h 127.0.0.1 < forum_new_schema.sql;

10. Импортируйте данные из существующей базы данных MySQL в новую базу данных PostgreSQL:

psql forum -U user_name -h 127.0.0.1 < forum_old_converted.sql;

11. Обновите значения счетчиков таблиц PostgreSQL:

SELECT pg_catalog.setval('bans_id_seq', (SELECT MAX(id) FROM bans), true);
SELECT pg_catalog.setval('categories_id_seq', (SELECT MAX(id) FROM categories), true);
SELECT pg_catalog.setval('censoring_id_seq', (SELECT MAX(id) FROM censoring), true);
SELECT pg_catalog.setval('forums_id_seq', (SELECT MAX(id) FROM forums), true);
SELECT pg_catalog.setval('groups_g_id_seq', (SELECT MAX(g_id) FROM groups), true);
SELECT pg_catalog.setval('posts_id_seq', (SELECT MAX(id) FROM posts), true);
SELECT pg_catalog.setval('ranks_id_seq', (SELECT MAX(id) FROM ranks), true);
SELECT pg_catalog.setval('reports_id_seq', (SELECT MAX(id) FROM reports), true);
SELECT pg_catalog.setval('search_words_id_seq', (SELECT MAX(id) FROM search_words), true);
SELECT pg_catalog.setval('topics_id_seq', (SELECT MAX(id) FROM topics), true);
SELECT pg_catalog.setval('users_id_seq', (SELECT MAX(id) FROM users), true);

12. Установите необходимые расширения PunBB.

Оригинальная статья

Поделиться

2

Re: HOWTO: Миграция PunBB 1.3 с MySQL на PostgreSQL в CentOS 5

lystor, спасибо, отметил тему как важную.

У каждого свой взгляд на мир.

Сайт coordinator

Поделиться