Конвертор uCoz -> phpBBex

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

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

Сообщение #41 Антон Казанцев » 10.07.2014, 18:08

Я думаю кавычка мешает. Не так ли???
Антон Казанцев
Репутация: -106
С нами: 11 лет 9 месяцев

Сообщение #42 odseg » 11.07.2014, 13:05

на какой пхпббекс ставили? с какого поста брали скрипт, я брал /viewtopic.php?p=10409#p10409 отсюда
odseg M
Откуда: Молодечно
Репутация: 2
С нами: 10 лет 6 месяцев

Сообщение #43 VEG » 11.07.2014, 17:53

Chill, Чтобы выявить подозрительный участок второго сообщения — можете попробовать удалять его части, пока ошибка не пропадёт. Так вы сузите круг возможных проблем до конкретного текста, который приводит к ошибке.

Добавлено спустя 2 минуты 57 секунд:
Антон Казанцев, по умолчанию кавычки и другие подобные символы должны заменяться на их HTML-мнемоники, типа " и т.д. Хотя код конвертера я не изучал, но раз им конвертировали целые форумы, по идее проблему с кавычками в сообщениях давно бы выявили.
VEG M
Администратор
Аватара
Откуда: Finland
Репутация: 1670
С нами: 12 лет 7 месяцев

Сообщение #44 Chill » 14.07.2014, 09:44

проштудировав forump.txt на предмет косяков, методом проб и ошибок выявил, что он не может обработать: пришлось заменить символ "\" :weirdface:
Chill
Гость

Сообщение #45 odseg » 14.07.2014, 10:09

на сколько я помню символ "\" в дампе укоза служит разделителем, бд не поплыла ?
odseg M
Откуда: Молодечно
Репутация: 2
С нами: 10 лет 6 месяцев

Сообщение #46 Chill » 14.07.2014, 13:06

Эм.. разделитель полей вроде как "|"
Ну и я не просто удалял "\" - заменял на соответствующее кол-во "|", т.к. дамп(ucoz) можно снять раз в 7 дней, а до этого нужны были только юзеры и соответственно был снят только текстовый дамп, а не полный, то все вложения пошли лесом - только в полях вложений встречался "\", но это не критично для нас.
Chill
Гость

Сообщение #47 odseg » 14.07.2014, 21:06

точно точно, прошу прощения =)
odseg M
Откуда: Молодечно
Репутация: 2
С нами: 10 лет 6 месяцев

Сообщение #48 Ignis » 15.09.2014, 16:58

Всем добрый вечер!

Мне нужно перенести форум с юкоза. Нашел указанный тут скрипт и решил попробовать перенести. Версию форума ставил 1.6 (почему-то она была последней на тот недавний момент). Ставил на Денвер, на нем и проверял.
Форум встал, скрипт запустился. Но выдает сообщение:
--
Проверка полноты дампа базы данных... НЕ НАЙДЕНЫ ОСНОВНЫЕ ФАЙЛЫ ДАМПА ФОРУМА!
ПРОВЕРЬТЕ НАХОДЯТСЯ ЛИ ФАЙЛЫ users.txt, ugen.txt, fr_fr.txt, forum.txt и forump.txt В КАТАЛОГЕ ./ucoz/_s1/
--
Разумеется, все эти файлы есть и в той папке, как сказано.
Файл "auth_db.php" я тоже предварительно откорректировал.
Кстати, после указанного сообщения выходит надпись "ПОЗДРАВЛЯЮ. Импорт дампа форума ucoz завершен!"
Но естественно, никакого импорта не происходит.

Вопрос - в чем может быть проблема?
--------------------
Добавление.

Нашел тут новую версию скрипта, проверил ее. Ругалась на неопознанную группу пользователей. И вообще, скрипт думает, что пользователи имеют uID-профиль. А у меня на форуме профили локальные, с другими полями, очевидно.
Но при всех условиях, в какой-то момент выдает следующее сообщение:

--
Общая ошибка
SQL ERROR [ mysql4 ]

Unknown column 'pf_mobile_number' in 'field list' [1054]

SQL

INSERT INTO phpbbex_profile_fields_data (user_id, pf_mobile_number, pf_equipment, pf_bike, pf_real_name) VALUES(68,"","","","Ivan Ivanov")

BACKTRACE

FILE: (not given by php)
LINE: (not given by php)
CALL: 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]/ucoz2phpbbex.php
LINE: 607
CALL: dbal_mysql->sql_query()

FILE: [ROOT]/ucoz2phpbbex.php
LINE: 1866
CALL: ucoz_import_users()
--

И что с этим делать? :(
Ignis
Аватара
Откуда: Баку
Репутация: 0
С нами: 10 лет 2 месяца

Сообщение #49 odseg » 15.09.2014, 20:16

папка /ucoz/ с дампом, должна находится в корне сайта (там где index.php )
"ПОЗДРАВЛЯЮ. Импорт дампа форума ucoz завершен!"
во всех представленных сдесь скриптах стоит заглушка, на конечный импорт, что бы не наделали глупостей, а потом обвиняли других.

Unknown column 'pf_mobile_number' in 'field list' [1054]

в коде скрипта задается соответствие инфы с дампа новому форуму.
INSERT INTO phpbbex_profile_fields_data (user_id, pf_mobile_number, pf_equipment, pf_bike, pf_real_name) VALUES(68,"","","","Ivan Ivanov")
тоже самое

Ругалась на неопознанную группу пользователей.
Код: Выделить всё
/* Предопределенные группы пользователей:
 в PHPbb
 1 - GUESTS
 2 - REGISTERED
 3 - REGISTERED_COPPA
 4 - GLOBAL_MODERATORS
 5 - ADMINISTRATORS
 6 - BOTS
 7 - NEWLY_REGISTERED
 в ucoz
 1 - NEWLY_REGISTERED (Пользователи)
 2 - REGISTERED (Проверенные)
 3 - MODERATORS (Модераторы)
 4 - ADMINISTRATORS (Администраторы)
 251 - ДРУЗЬЯ (что с ними делать???)
 255 - BLOCKED (заблокированные
 - их не переносим, т.к. при использовании Unet - удалять нельзя и это единственный способ избавиться от них)
 */
// Карта соответствия групп пользователей ucoz -> phpbb
/* КАК НАРАЩИВАТь ЭТУ КАРТУ!!!
 Создайте средствами PHPbb необходимые группы (какие были в ucoz)
 отыщите их идентификаторы и добавьте в карту строки вида
 {ID_группы_из_ucoz} => array( {ID_созданной_группы_PHPbb}, 2 ),
 для каждой добавленной группы

 ИЛИ измените константу USE_GROUP_2_FOR_UNKNOWN_GROUPS в true (стр 464)
 чтобы все пользователи из таких групп отправились в стандартную группу
 зарегистрированных пользователей PHPbb

я так понял вы в сам скрипт даже не смотрели...
поищу свою версию с правками. Найду - выложу.

Добавлено спустя 15 минут 13 секунд:
нашел, обращаю внимание что Карту соответствия групп пользователей ucoz -> phpbb вы должны сами пересмотреть
Аккуратно! Заглушка на конечный импорт убрана, я не несу ответственности за поломку вашей базы данных.
Также обратите внимание на /viewtopic.php?p=12763#p12763 это сообщение

Добавлено спустя 1 минуту 27 секунд:
можете скачать новейшую версию phpbbex , по-моему, проблем из-за версии не будет

Добавлено спустя 5 минут 50 секунд:
в скрипте убрал множество полей в профиле пользователя, вроде как оставил минимум, карту правил под себя, все аттачменты так и не перенеслись
Вложения
odsegucoz2phpbbex.zip
СНЯТА ЗАГЛУШКА
(23.81 КБ) Скачиваний: 717
odseg M
Откуда: Молодечно
Репутация: 2
С нами: 10 лет 6 месяцев

Сообщение #50 Ignis » 16.09.2014, 09:14

odseg, спасибо за ответ!
odseg:я так понял вы в сам скрипт даже не смотрели...
Разумеется, смотрел.
Как я и написал во второй части, я нашел новую версию скрипта и на пустую папку она уже не ругалась.
Когда он ругался на не ту группу, я сам нашел и изменил "ИЛИ измените константу USE_GROUP_2_FOR_UNKNOWN_GROUPS в true (стр 464)", у меня мало пользователей и мне проще потом вручную создать нужные группы и перенести их куда надо.

После чего этот пункт отпал, но появились другие сообщения. Например, совпадение имен юзеров. Я в текстовых файлах юкоза просто переписал совпадающие имена на другие, изменил логин, совпадающий с админом на phpbbex. Это тоже помогло, но в конечном итоге появилось то, что я и привел в своем посте. И вот что с этим делать - так и не понял.

Приду домой - попробую новый вариант, но если заглушка может испортить базу - может быть, лучше ее оставить? Конечно, я на Денвере проверяю пока, но все же...
Если проблема в несовпадении полей профиля - как это отрегулировать? Список моих юзеров есть на странице " http://erichware.net/forum/0-0-1-35 ", естественно, не у всех все существующие поля заполнены...
Уж очень не хочется терять материалы, особенно посты форума...
Ignis
Аватара
Откуда: Баку
Репутация: 0
С нами: 10 лет 2 месяца

Сообщение #51 Mneznakomec » 16.09.2014, 10:12

Ignis:Unknown column 'pf_mobile_number' in 'field list' [1054]
Скрипт внимательно вы всё равно не читали. Написал же: это для добавления новых полей в форуме. В данном случае он просит на phpbbEx создать поле с именем pf_mobile_number. Вы найдите в скрипте это место и закомментируйте его. Я там по-русски писал.

Ignis:у меня мало пользователей и мне проще потом вручную создать нужные группы и перенести их куда надо.
Вы внимательно с утра почитайте про мэппинг групп, там всё просто. Кидайте просто в одну все свои встреченные группы.

Ignis:Если проблема в несовпадении полей профиля - как это отрегулировать?
Задать соответствие или закомментировать, чтобы не мешали. Базовые поля совпадают все.

odseg:все аттачменты так и не перенеслись
Аттачменты переносятся без каких-либо проблем, если корректно заданы права на каталоги форума: files, cache и store. Нужно владельца установить www-data.

1.6 или 1.8 - неважно, скрипт отработает. Я глобальных проблем не испытываю, импортировал только сейчас вот.

Выкладываю последнюю свою версию скрипта, в котором исправлено практически всё, о чём говорили заранее (дни рождения и прочие мелочи). Исходные файлы править не нужно! Все вхождения символа \| убираются при импорте. Необходима только папка полного дампа.

Главное: для своих целей я оставил ID пользователей теми же, так как импортирую на чистый форум. Поэтому c пользователями ID 1 и 2 провожу определённые действия (546 строка), кому нужен сдвиг - берите из старого скрипта, исправлять времени нет. Также у меня добавлены поля, ищите коммент с буквами Mn.

Для использования "из коробки" мой скрипт подойдёт, но пользователь с ID=1 будет админом, пользователя с ID=2 не будет, его данные будут записаны на пользователя с ID=13. Всё это можно поправить, если слегка поковырять скрипт.

Также я закомментил импорт смайлов.
Вложения
!ucoz2phpbbex_1.4.zip
Версия 1.4
(24.45 КБ) Скачиваний: 739
Mneznakomec
Аватара
Репутация: 7
С нами: 11 лет 4 месяца

Сообщение #52 odseg » 16.09.2014, 11:21

Приду домой - попробую новый вариант, но если заглушка может испортить базу - может быть, лучше ее оставить? Конечно, я на Денвере проверяю пока, но все же...
я говорил про процедуру импорта форума , если не снять то импорта не будет =)
скачай скрипт от мнезнакомца выше, для уверенности
odseg M
Откуда: Молодечно
Репутация: 2
С нами: 10 лет 6 месяцев

Сообщение #53 Ignis » 16.09.2014, 19:43

Скачал исправленный скрипт. Изменил путь к папке юкоза (почему-то было "../ucoz/"), убрал блок, помеченный Mn.
Еще кое-что переставил в исходной базе, вернул "true" на флаг не той группы.
Но в итоге получил все равно
Спойлер
Данные из файлов ./ucoz/_s1/users.txt и ./ucoz/_s1/ugen.txt прочитаны...

Общая ошибка
SQL ERROR [ mysql4 ]

Duplicate entry '13' for key 'PRIMARY' [1062]

Произошла ошибка SQL при выборке на этой странице. Пожалуйста, сообщите администратору, если ошибка будет повторяться.

И отделаться от этого уже не получается.
Замечу, что мои знания РНР на весьма начальном уровне. Поэтому читать скрипт я еще могу ( со словарем :) ), но вот редактировать лучше очень аккуратно... Или лучше никак...
Ignis
Аватара
Откуда: Баку
Репутация: 0
С нами: 10 лет 2 месяца

Сообщение #54 Mneznakomec » 18.09.2014, 07:05

Ignis:Изменил путь к папке юкоза (почему-то было "../ucoz/")
У меня директория ucoz находится на одном уровне с директорией форума, чтобы не затиралась при восстановлении бэкапа.

Ignis:Но в итоге получил все равно
В загружаемой выборке пользователя с ID=13 не должно быть, потому что пользователь с ID=2 будет записан с ID=13.
Измените строки 548 и 549 на
Код: Выделить всё
      if (($user_id == 1) || ($user_id == 3000)) continue;
      if ($user_id == 2) $user_id = 3000;

Ignis:мои знания РНР на весьма начальном уровне
Учитесь, пригодится. :smile:
Mneznakomec
Аватара
Репутация: 7
С нами: 11 лет 4 месяца

Зачем заголовок-то?

Сообщение #55 Ignis » 18.09.2014, 17:34

Mneznakomec:Измените строки 548 и 549 на
Спасибо, изменил. Но получил ошибку
Duplicate entry '3' for key 'PRIMARY' [1062]

Что же там такое с этими номерами? И что за "key 'PRIMARY'"? И вообще, кто эту ошибку выдает? В скрипте надписи "Duplicate entry" нет.

Mneznakomec:Учитесь, пригодится.
Так я и учусь, просто медленно. :smile:
Ignis
Аватара
Откуда: Баку
Репутация: 0
С нами: 10 лет 2 месяца

Сообщение #56 Sumanai » 18.09.2014, 17:42

Ignis:Что же там такое с этими номерами? И что за "key 'PRIMARY'"? И вообще, кто эту ошибку выдает? В скрипте надписи "Duplicate entry" нет.

Это база данных выдаёт, говорит, что первичный ключ, который должен быть уникальным, повторился, чего, само собой, быть не должно.
Sumanai M
Аватара
Репутация: 1677
С нами: 11 лет 10 месяцев

Сообщение #57 Ignis » 18.09.2014, 17:48

Понятно. И как это устранить? Почему ключ не уникальный? По идее скрипт конвертирует стандартную базу юкоза. Ну, понятно, что список полей может быть разным у разных сайтов на юкозе. Но как это согласовать?
Ignis
Аватара
Откуда: Баку
Репутация: 0
С нами: 10 лет 2 месяца

Сообщение #58 Антон Казанцев » 18.09.2014, 18:07

Надо сброс в заводские настройки и потом чистить через стк. Запускаем дефраг базы данных и удаляем поля дупликаты. Всё должно рабатать.
Антон Казанцев
Репутация: -106
С нами: 11 лет 9 месяцев

Сообщение #59 Mneznakomec » 25.09.2014, 05:58

Ignis:Спасибо, изменил. Но получил ошибку
Duplicate entry '3' for key 'PRIMARY' [1062]
Это значит, что в базе данных phpbbEx уже есть пользователь с ID=3. Скрипт работает только с чистой базой данных, я же писал. Никаких пользователей, кроме админа, быть не должно вообще.

Ignis:Что же там такое с этими номерами? И что за "key 'PRIMARY'"?
Вам нужно почитать хотя бы краткий курс по теории баз данных, хотя бы выжимку. Ключевые поля - это одних из краеугольных понятий в БД, без знания этого вам будет очень сложно, если вообще что-то получится.

Антон Казанцев:Надо сброс в заводские настройки и потом чистить через стк.
Зачем что-то чистить? Просто импорт в чистый phpbbEx, всё. Кому нужно в уже работающий форум - там нужно смещение.

Как вариант: возьмите скрипт Алексея и мой, сравните в Тотале, глобальных изменений там нет. На разнице можно посмотреть где я ковырял.
Mneznakomec
Аватара
Репутация: 7
С нами: 11 лет 4 месяца

Сообщение #60 go_to_the_rain » 10.01.2015, 11:19

Всем привет.
Использую вот эту версию скрипта - /viewtopic.php?p=15045#p15045
Запускаю на локальной машине на денвере, начинает работать, доходит дело до импорта сообщений, идет до 33000, а потом будто бы зависает, т.е. скрипт вроде бы и выполняется, но может так простоять и 10 и 20 (и более) минут и ничего.

А на хостинге другая картина - на одном импортируется 2000 сообщений и останавливается работа скрипта (без всяких ошибок, просто останавливается), на другом хостинге запускаю - на 5000 останавливается )

Если кто знает, подскажите, пожалуйста, в какую сторону вообще нужно копать :eh:
go_to_the_rain
Репутация: 1
С нами: 9 лет 11 месяцев

Пред.След.

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