Конвертация базы из phpBB 3.0 в phpBBex 1.x

Список разделов phpBBex 1.x (поддерживается) Мастерская 1.x

Описание: Только готовые решения! Статьи, заметки, моды и другие полезности для phpBBex 1.x и phpBB 3.0.x.
Модератор: Поддержка

Сообщение #1 VEG » 18.04.2012, 21:11

На данный момент доступен только скрипт конвертации phpBB 3.0.x в phpBBex. Для того, чтобы конвертировать любой другой форум в phpBBex, сперва необходимо конвертировать его в phpBB 3.0.x, после чего уже приступать к конвертации в phpBBex.

Общая схема действий такова:
  1. Перед началом работы обязательно делаем копию всех данных!
  2. Если у вас установлены стили, отличные от prosilver, удаляем их через админку и устанавливаем у всех пользователей стиль prosilver по умолчанию. Для этого зайдите в Админка » Стили, и там на страницах «Стили», «Шаблоны», «Темы» и «Наборы рисунков» удалите всё, что отличается от prosilver. Если этого не сделать, после копирования файлов phpBBex вы получите ошибку, поскольку в комплекте с ним идёт только стиль prosilver.
  3. Если у вас есть хоть одно важное (глобальное) объявление — обязательно сделайте их обычными перед конвертацией (после конвертации вы сможете сделать их обратно глобальными).
  4. Удаляем файлы phpBB 3 кроме config.php, файлов аватар в каталоге ./images/avatars/ и файлов вложений в каталоге ./files/), вместо них записываем файлы phpBBex (config.php не перезаписываем). Учтите, что в каталоге загруженных аватар ./images/avatars/upload/ обязательно необходимо удалить файл .htaccess.
  5. Выполняем в базе скрипт /install/phpbbex.sql (вручную, при помощи PhpMyAdmin на вашем хостинге или другого подобного инструмента). Если у вас префикс таблиц отличается от «phpbb_», не забудьте перед выполнением изменить подстроку «phpbb_» (со знаком подчёркивания!) на ваш префикс в любом текстовом редакторе, кроме значения phpbb_captcha_nogd, его нужно оставить без изменений. Если у вас были установлены модификации, могут возникнуть ошибки (что-то вроде «колонка такая-то уже существует»), но большинство из них легко разрешается (спрашивайте, поможем).
  6. Запускаем в браузере скрипт обновления базы phpBB /install/database_update.php (на случай, если у вас до этого стояла не последняя версия phpBB).
  7. Авторизуемся, очищаем кэш (на главной в админке), заходим в Админка » Стили, где обязательно обновляем наборы изображений, темы и шаблоны для prosilver (без этого стиль будет отображаться некорректно из-за старых данных из phpBB 3).
  8. Админка » Система » Управление модулями » Администраторский раздел » Система » Автоматизация. Необходимо удалить модуль ACP_VERSION_CHECK.
  9. Админка » Система » Управление модулями » Администраторский раздел. Необходимо добавить модули «Быстрый ответ», «Верхние ссылки», «Управление вложениями», «Настройки отображения» и «Лог регистраций» в подходящие вам разделы. Не забудьте включить эти модули после добавления.
  10. Админка » Система » Управление модулями » Модераторский раздел. Необходимо добавить модуль «Редактировать предупреждение» в категорию «Предупреждения».
  11. Для отображения аватар необходимо их синхронизировать: Зайдите в STK (каталог ./stk/, например, http://вашфорум/stk/), Admin Tools, Resynchronise avatars, нажмите Yes и подождите, пока не появится надпись «Avatars successfully resynchronised!» (это может занять несколько минут!).
  12. Для установки новых пакетов смайликов: Зайдите в Админку, Сообщения, Смайлики, Установить пакет смайликов, выберите phpbbex.pak или phpbb3.pak (в зависимости от того, какой пакет смайликов вы хотите), выберите радиокнопку «Удалить все» и нажмите «Установить пакет смайликов».
  13. Не забудьте установить зарегистрированным пользователям право оценивать сообщения.
  14. После обновления базы зайдите в Админку » Сообщения » Вложения » Группы расширений, и удалите там группу QUICKTIME_MEDIA. Там же вы можете увидеть новые группы «HTML5 аудио» и «HTML5 видео» — эти группы вы можете назначать на следующие расширения для отображения их в виде плеера: ogg, ogv, opus, webm, wav, mp3, mp4, m4a, m4v.

Если у вас был установлен мод «Thanks for posts», вы можете импортировать благодарности во встроенную в phpBBex систему оценки сообщений.

Внимание! В этой теме обсуждаем проблемы конвертации. Решение проблем с уже установленным форумом в этом форуме.
VEG M
Автор темы, Администратор
Аватара
Откуда: Finland
Репутация: 1653
С нами: 11 лет 11 месяцев


Сообщение #201 sag-sag » 12.08.2013, 22:17

Помогите: при выполнении в базе скрипт /install/phpbbex.sql вот такая ошибка выскакивает:

Код: Выделить всё
Ошибка
SQL-запрос:

-- General scheme updates
CREATE TABLE phpbb_user_confirm_keys(

confirm_key VARCHAR( 10 ) NOT NULL ,
user_id MEDIUMINT( 8 ) UNSIGNED NOT NULL ,
confirm_time INT( 11 ) UNSIGNED NOT NULL ,
PRIMARY KEY ( confirm_key ) ,
KEY user_id( user_id )
) CHARACTER SET  `utf8` COLLATE  `utf8_bin` ;

Ответ MySQL: Документация

#1050 - Table 'phpbb_user_confirm_keys' already exists

Добавлено спустя 20 минут 2 секунды:
Вроде что-то вышло. Теперь такая:
Код: Выделить всё
ALTER TABLE phpbb_bbcodes ADD COLUMN bbcode_order SMALLINT( 4 ) DEFAULT  '0' NOT NULL AFTER bbcode_id;
sag-sag M
Аватара
Репутация: 411
С нами: 10 лет 7 месяцев

Сообщение #202 Sumanai » 13.08.2013, 00:28

sag-sag:Вроде что-то вышло. Теперь такая:

Похоже на запрос, а не на ошибку, выдаваемую сервером.
Sumanai M
Аватара
Репутация: 1677
С нами: 11 лет 1 месяц

Сообщение #203 sag-sag » 13.08.2013, 00:39

Тогда вот решил все по новуму сделать.

По поводу выполнения скрипта:
Код: Выделить всё
/install/phpbbex.sql
я в PhpMyAdmin выбираю свою базу и выбираю SQL.
В окне Выполнить SQL-запрос(ы) к базе данных название базы: (выполняю скрипт)
Код: Выделить всё
/install/phpbbex.sql

Если так правильно, то появляется такая ошибка:
Код: Выделить всё
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '/install/phpbbex.sql' at line 1
sag-sag M
Аватара
Репутация: 411
С нами: 10 лет 7 месяцев

Сообщение #204 VEG » 13.08.2013, 01:13

sag-sag, вы должны в поле SQL вставить содержимое файла phpbbex.sql. Если же во время выполнения скрипта вываливаются ошибки — скорее всего у вас был модифицированный phpBB 3 с изменённой структурой базы. Самый простой вариант избавиться от проблем при конвертации — это вернуть структуру базы в исходное состояние (без модов). Для этого на первом этапе, когда у вас в каталоге ещё файлы обычного phpBB, вы должны установить официальный STK и использовать там функцию очистки базы от лишних полей и таблиц. После этого уже при дальнейшей установке проблем не должно возникнуть. Внимание! Всегда перед подобными работами делайте резервные копии!
VEG M
Автор темы, Администратор
Аватара
Откуда: Finland
Репутация: 1653
С нами: 11 лет 11 месяцев

Сообщение #205 sag-sag » 13.08.2013, 01:20

Вот я лошара))) Теперь скрипт выполнил, но вот такая ошибка появилась:
Код: Выделить всё
SELECT (
@new_bbcode_id := GREATEST( MAX( bbcode_id ) +1, 17 )
)
FROM phpbb_bbcodes

Буду базу чистить

Добавлено спустя 16 минут 38 секунд:
Почистил! теперь такая ошибка:
Код: Выделить всё
SQL-запрос:

-- General scheme updates
CREATE TABLE phpbb_user_confirm_keys(

confirm_key VARCHAR( 10 ) NOT NULL ,
user_id MEDIUMINT( 8 ) UNSIGNED NOT NULL ,
confirm_time INT( 11 ) UNSIGNED NOT NULL ,
PRIMARY KEY ( confirm_key ) ,
KEY user_id( user_id )
) CHARACTER SET  `utf8` COLLATE  `utf8_bin` ;

Ответ MySQL: Документация

#1050 - Table 'phpbb_user_confirm_keys' already exists
sag-sag M
Аватара
Репутация: 411
С нами: 10 лет 7 месяцев

Сообщение #206 Sumanai » 13.08.2013, 01:57

sag-sag:Почистил! теперь такая ошибка:

Начинайте с исходной позиции, чистите и конвертируйте. Вы судя по всему сначала попытались конвертировать, потом почистили, а потом опять пытались конвертировать. Само собой некоторые таблицы уже существуют. Возьмите исходную копию базы данных и последовательно выполняйте действия по конвертации, почистив на первом этапе. И вообще при появлении ошибок лучше откатываться в исходную позицию, и добиться, чтобы конвертация прошла без ошибок.
Sumanai M
Аватара
Репутация: 1677
С нами: 11 лет 1 месяц

Сообщение #207 sag-sag » 13.08.2013, 09:27

Вообщем, благо, что на форуме не очень много информации. Перенесу вручную.

Наделал такого, что теперь и бекап база ошибку выдает. Спасибо за помощь!
sag-sag M
Аватара
Репутация: 411
С нами: 10 лет 7 месяцев

Сообщение #208 Sumanai » 13.08.2013, 10:09

sag-sag:Наделал такого, что теперь и бекап база ошибку выдает.

В смысле? Если бекап делался с рабочего форума- он обязан быть рабочим.
Sumanai M
Аватара
Репутация: 1677
С нами: 11 лет 1 месяц

Сообщение #209 sag-sag » 13.08.2013, 10:30

Сейчас попробую еще...
sag-sag M
Аватара
Репутация: 411
С нами: 10 лет 7 месяцев

Сообщение #210 sag-sag » 15.08.2013, 17:38

Ура конвертнул!! Всего только одна ошибка вылезла:

Код: Выделить всё
SELECT (
@new_bbcode_id := GREATEST( MAX( bbcode_id ) +1, 17 )
)
FROM phpbb_bbcodes

Все отлично!
sag-sag M
Аватара
Репутация: 411
С нами: 10 лет 7 месяцев

Сообщение #211 VEG » 15.08.2013, 19:02

sag-sag, вы хвост после этого кода:
Код: Выделить всё
-- Resolve conflicts with the new system bbcodes
DELETE FROM phpbb_bbcodes WHERE bbcode_tag IN ('s', 'tt', 'upd', 'upd=', 'spoiler', 'spoiler=');
SELECT (@new_bbcode_id:=GREATEST(MAX(bbcode_id)+1, 17)) FROM phpbb_bbcodes;
UPDATE phpbb_bbcodes SET bbcode_id=@new_bbcode_id WHERE bbcode_id = 13;
SELECT (@new_bbcode_id:=GREATEST(MAX(bbcode_id)+1, 17)) FROM phpbb_bbcodes;
UPDATE phpbb_bbcodes SET bbcode_id=@new_bbcode_id WHERE bbcode_id = 14;
SELECT (@new_bbcode_id:=GREATEST(MAX(bbcode_id)+1, 17)) FROM phpbb_bbcodes;
UPDATE phpbb_bbcodes SET bbcode_id=@new_bbcode_id WHERE bbcode_id = 15;
SELECT (@new_bbcode_id:=GREATEST(MAX(bbcode_id)+1, 17)) FROM phpbb_bbcodes;
UPDATE phpbb_bbcodes SET bbcode_id=@new_bbcode_id WHERE bbcode_id = 16;
отдельно выполняли или нет? Если нет, то его нужно выполнить, иначе у вас будут ошибки валиться. MySQL при ошибке перестаёт выполнять дальнейшие инструкции. Поэтому при проблемах следует оставшуюся часть выполнять отдельно.
VEG M
Автор темы, Администратор
Аватара
Откуда: Finland
Репутация: 1653
С нами: 11 лет 11 месяцев

Сообщение #212 sag-sag » 15.08.2013, 20:44

Нет не выполнял.
То есть мне надо выполнить этот код:
Код: Выделить всё
-- Resolve conflicts with the new system bbcodes
DELETE FROM phpbb_bbcodes WHERE bbcode_tag IN ('s', 'tt', 'upd', 'upd=', 'spoiler', 'spoiler=');
SELECT (@new_bbcode_id:=GREATEST(MAX(bbcode_id)+1, 17)) FROM phpbb_bbcodes;
UPDATE phpbb_bbcodes SET bbcode_id=@new_bbcode_id WHERE bbcode_id = 13;
SELECT (@new_bbcode_id:=GREATEST(MAX(bbcode_id)+1, 17)) FROM phpbb_bbcodes;
UPDATE phpbb_bbcodes SET bbcode_id=@new_bbcode_id WHERE bbcode_id = 14;
SELECT (@new_bbcode_id:=GREATEST(MAX(bbcode_id)+1, 17)) FROM phpbb_bbcodes;
UPDATE phpbb_bbcodes SET bbcode_id=@new_bbcode_id WHERE bbcode_id = 15;
SELECT (@new_bbcode_id:=GREATEST(MAX(bbcode_id)+1, 17)) FROM phpbb_bbcodes;
UPDATE phpbb_bbcodes SET bbcode_id=@new_bbcode_id WHERE bbcode_id = 16;

правильно?
sag-sag M
Аватара
Репутация: 411
С нами: 10 лет 7 месяцев

Сообщение #213 Sumanai » 15.08.2013, 20:45

Да, правильно.
Sumanai M
Аватара
Репутация: 1677
С нами: 11 лет 1 месяц

Сообщение #214 sag-sag » 15.08.2013, 20:46

Но ошибка опять вылезла
sag-sag M
Аватара
Репутация: 411
С нами: 10 лет 7 месяцев

Сообщение #215 Sumanai » 15.08.2013, 21:03

Какая на этот раз?
Sumanai M
Аватара
Репутация: 1677
С нами: 11 лет 1 месяц

Сообщение #216 VEG » 15.08.2013, 21:08

sag-sag:То есть мне надо выполнить этот код:
Вам нужно выполнить код, который в файле phpbbex.sql находится после этого кода. Сам этот код выполнять уже не нужно. Возможно, я не совсем понятно написал :)
VEG M
Автор темы, Администратор
Аватара
Откуда: Finland
Репутация: 1653
С нами: 11 лет 11 месяцев

Сообщение #217 sag-sag » 15.08.2013, 21:15

А ! Дошло!))

Добавлено спустя 6 минут 22 секунды:
Теперь такая ошибка:
Код: Выделить всё
SQL-запрос:

-- Post rates
CREATE TABLE phpbb_post_rates(

user_id MEDIUMINT( 8 ) UNSIGNED NOT NULL ,
post_id MEDIUMINT( 8 ) UNSIGNED NOT NULL ,
rate TINYINT( 4 ) NOT NULL DEFAULT  '0',
rate_time INT( 11 ) UNSIGNED NOT NULL DEFAULT  '0',
PRIMARY KEY ( user_id, post_id ) ,
KEY post_id( post_id ) ,
KEY user_id( user_id )
) CHARACTER SET  `utf8` COLLATE  `utf8_bin` ;

Ответ MySQL: Документация

#1050 - Table 'phpbb_post_rates' already exists

Но форум работает отлично!
sag-sag M
Аватара
Репутация: 411
С нами: 10 лет 7 месяцев

Сообщение #218 Sumanai » 15.08.2013, 21:58

БД ответила "Таблица существует", грубо говоря. То есть вы уже выполняли этот запрос.

VEG:Возможно, я не совсем понятно написал :)
Ага. Даже я не так понял :smile:
Sumanai M
Аватара
Репутация: 1677
С нами: 11 лет 1 месяц

Сообщение #219 sag-sag » 16.08.2013, 22:15

Спасибо всем! Все классно работает! Очень доволен, что перешел с phpBB на phpBBex! Тут все просто: поставил форум и работай, а в phpBB еще надо доставлять куча всего.

P.S. одно мне не нравится в phpBB вообще - так это Права доступа. До этого сидел на ucoz (хотя его многие не навидят), но Права доступа, там сделаны намного удобнее!!! Тут с первого раза без стакана не разберешься!
sag-sag M
Аватара
Репутация: 411
С нами: 10 лет 7 месяцев

Сообщение #220 pisikot » 30.09.2013, 19:26

Все привет.
Пробую перевести последний форум на phpbbex, последний как всегда самый трудный.
Форуму 6 лет и изначально был на phpbb2, шас phpbb3 куча модов (половина точно уже не нужных, типо галереи и рейтинга юзеров)

Вообщем пытаюсь через STK очистить БД, в шаге
Reset Bots
Would you like to reset the bots list to the default phpBB3 bot list? All existing bots will be removed and be replaced with the default set.

вылетает

Код: Выделить всё
SQL ERROR [ mysql4 ]

Table '300913.phpbb3_mchat' doesn't exist [1146]

SQL

UPDATE phpbb3_mchat SET user_id = 1 WHERE user_id = 943

BACKTRACE

FILE: (not given by php)
LINE: (not given by php)
CALL: stk_msg_handler()

FILE: [ROOT]/includes/db/dbal.php
LINE: 757
CALL: trigger_error()

FILE: [ROOT]/includes/db/mysql.php
LINE: 175
CALL: dbal->sql_error()

FILE: [ROOT]/includes/functions_mchat.php
LINE: 55
CALL: dbal_mysql->sql_query()

FILE: [ROOT]/includes/functions_user.php
LINE: 360
CALL: mchat_user_fix()

FILE: [ROOT]/stk/includes/database_cleaner/database_cleaner_controller.php
LINE: 78
CALL: user_delete()

FILE: (not given by php)
LINE: (not given by php)
CALL: database_cleaner_controller->bots()

FILE: [ROOT]/stk/tools/support/database_cleaner.php
LINE: 188
CALL: call_user_func()

FILE: [ROOT]/stk/index.php
LINE: 284
CALL: database_cleaner->run_tool()

не пойму как боты связаны с мчатом, тем более мчат я предварительно деинсталировал.
pisikot M
Аватара
Откуда: Тюмень, Россия
Репутация: 43
С нами: 11 лет 5 месяцев

Пред.След.

Вернуться в Мастерская 1.x