Добрый день.
Написал мигратор пользователей и всех связанных с ними таблиц из первой ветки на вторую.
Что переносится:
1. Сами пользователи (никнейм, пароль и тд) — этот пункт встречался на форуме..
2. Аватары, город, статус, карма…
3. Внутренние сообщения
4. История изменения кармы
5. Друзья
6. Записи на стене
Делал для себя, сильно разукрашивать не стал — все сделано в формате компонента для 2*.
Нужно закинуть архив в корень сайта и развернуть.
Последовательность работы:
cms_user_karma — изменение кармы
cms_user_msg — сообщения
cms_user_wall — записи на стене
cms_user_profiles — аватары, город, статус и тд
cms_users — электронка, пароль и тд
Важно! Префикс таблиц должен отличаться от префикса в базе данных второй ветки.
После миграции нужно копировать папку с аватарами в папку uploads в корне сайта — папка users лежит внутри images.
Супер важно!!! Бэкапы обязательно делаем. Перед миграцией все таблицы очищаются (не удаляется только пользователь с id=1 из таблицы users).
Делал для себя, баги никто не отменял — найдете, пишите.
2. будет работать система сообщений с полным архивом сообщений
3. записи на стенах в профиле
4. друзья
5. история кармы
Написал мигратор пользователей и всех связанных с ними таблиц из первой ветки на вторую.
Что переносится:
1. Сами пользователи (никнейм, пароль и тд) — этот пункт встречался на форуме..
2. Аватары, город, статус, карма…
3. Внутренние сообщения
4. История изменения кармы
5. Друзья
6. Записи на стене
Делал для себя, сильно разукрашивать не стал — все сделано в формате компонента для 2*.
Нужно закинуть архив в корень сайта и развернуть.
Последовательность работы:
1. Закинуть в БД сайта таблицы из первой ветки:
cms_user_friends — таблица друзейcms_user_karma — изменение кармы
cms_user_msg — сообщения
cms_user_wall — записи на стене
cms_user_profiles — аватары, город, статус и тд
cms_users — электронка, пароль и тд
Важно! Префикс таблиц должен отличаться от префикса в базе данных второй ветки.
Развернуть в корне сайта архив с компонентом
3. Запустить в браузере site.ru/jmigrator
Последовательно запустить миграцию каждого пункта. Если пользователей много — перенос последнего пункта будет занимать продолжительное время. Остальные пункты мигрируют быстро.После миграции нужно копировать папку с аватарами в папку uploads в корне сайта — папка users лежит внутри images.
Супер важно!!! Бэкапы обязательно делаем. Перед миграцией все таблицы очищаются (не удаляется только пользователь с id=1 из таблицы users).
Делал для себя, баги никто не отменял — найдете, пишите.
После всех действий:
1. появятся пользователи с аватарами, городами в профиле и статусами с хобби.2. будет работать система сообщений с полным архивом сообщений
3. записи на стенах в профиле
4. друзья
5. история кармы
Реклама #
SpaceSel 9 лет назад #
PS: Отличная работа. Самому уже не нужно, но думаю, люди оценят.
Странник 9 лет назад #
Денис Васильевич 9 лет назад #
Pasha 9 лет назад #
Князь Мышкин 9 лет назад #
Грядет то время, когда кто-то напишет в блог постинг "Вот, ребята. Я собрал в одну утилиту все миграторы, что были у нас и просто сделал кнопку "Перенести", пользуйтесь!"
Авторам различных миграторов большущее спасибо за труды!
Денис Васильевич 9 лет назад #
Ris 9 лет назад #
Закинул в базу таблицы, изменив префикс. Закинул мигратор на сайт. Всё великолепно запускается.
Что я делаю не так?
Весь процесс происходит на денвере, на локальном компьютере.
SJen 9 лет назад #
Ris 9 лет назад #
SJen 9 лет назад #
По логу ошибки нет, то есть сервер все делает успешно (возвращает код ответа 200).
Хотел уже предложить попробовать решение с форума и потом увидел кто его автор А ваше решение пользователей успешно переносит?
Остается вариант добавить побольше логов в перенос пользователей и выяснить на чем спотыкается компонент. Если есть возможность выложить сайт в интернет (на поддомен какой-нибудь) - это бы упростило поиск ошибки.
Ris 9 лет назад #
А старым мигратором, как ни странно, переносит.
Денис Васильевич 9 лет назад #
Pasha 9 лет назад #
SJen 9 лет назад #
Но это не объясняет почему не работает один пункт из пяти.. Более того, почему у меня работают все пункты. Надо проверить на чистом движке еще раз
Pasha 9 лет назад #
SJen 9 лет назад #
Pasha 9 лет назад #
lokanaft 9 лет назад #
Fuze 9 лет назад #
Если параметр не передан при вызове, он считается равным undefined.
Можно проверить, равен ли аргумент undefined, и если да, то записать в него значение по умолчанию или же использовать оператор ||.
Ris 9 лет назад #
Включил отладку, при нажатии кнопки сайт сразу ругнулся на неизвестный колумн p.signature_html
Удалил упоминание о нем из jmigrator\system\controllers\jmigrator\model.php - всё тут же заработало!
Причем повторяющиеся имейлы не пропустило, а дописало к ним "номер". То есть vasya@vasya.ru, vasya@vasya.ru1, vasya@vasya.ru2 и т.д.
Отличная работа! Немного допилить под хром и великолепный инструмент для переноса юзеров!
А можно и не допиливать. Один раз запустить лису ради такого дела - не напрягает.
SJen 9 лет назад #
Про email да, забыл написать - скрипт старается записать всех юзеров. Сначала записываются пользователи, под которыми заходили позднее(сортировка по дате авторизации и регистрации).
Ris 9 лет назад #
Так исторически сложилось, что основным пользователем считается самый первый. Остальные его аккаунты "смиты" и не то чтобы запрещены, но слегка вторичны.
Поэтому все DESC в выборке заменил на ASC и переделал конкатенацию вот так:
С цифрами впереди мыла пользователей с повторным мылом легче искать. Можно просто отсортировать таблицу по мылу и все повторные всплывают вверх.
После этого им можно разослать письма на почты с просьбой сменить почтовый ящик.
SJen 9 лет назад #
Про время все верно - перенос пользователей самый ресурсозатратный (я у себя тоже время увеличивал), но я об этом пару слов в описании написал.
А про мыло мне, кажется, два варианта есть:
1. оставить как есть, потому что у каждого действительно свои правила и скрипт проще чуток допиливать под себя, чем делать универсальным под все случаи жизни.
2. делать супер функциональный компонент для переноса пользователей (соответственно немного платный) - но я думаю это не вариант, это того не стоит. По временным затратам..
Ris 9 лет назад #
Кому надо - сам поправит. Кто не может поправить - тому не надо.
SJen 9 лет назад #
Kewa2008 9 лет назад #
Скачал, разархивировал в корень, открываю страницу http://site.ru/jmigrator, выдает ошибку 403. Открыл все доступы к этой папке и всем подпапкам\файлам, трясу своего админа на предмет серверных ограничений. Все безрезультатно, ошибка никуда не уходит. Бьюсь уже третий день. Мб кто подскажет в чем может быть проблема?
kirkr 8 лет назад #
Ris 8 лет назад #
volchoc 8 лет назад #
Может кеш почистить? В двойке я не нашел как его почистить. А все тупо удалить из папки побоялся
DimaGrr 8 лет назад #
Станислав Григорьевич (Мозголом) 5 лет назад #
Igor-san 4 года назад #
Ris 4 года назад #
Легко сделать мигратор со свежеустановленного сайта на первой ветке на вторую ветку.
Если установлены какие-то дополнительные плагины и дополнения - миграция перестаёт быть простой.
И да, url не сохраняются при миграции.
Встречный вопрос: зачем нужно мигрировать сайт с первой ветки на вторую? Версия 1.10.7 вполне рабочая и много сайтов на ней работают до сих пор и не собираются никуда мигрировать.