Перенос пользователей с MODX Evo на Revo
Добрый день!
Переношу сайт с MODX Evo на Revo. Использовал Provisioner. Структура документов и чанки перенеслись нормально, а вот зарегистрированные пользователи не переносятся.
Подскажите пожалуйста, как это сделать? Подозреваю что через SQL-запросы, я в этом полный ноль.
Переношу сайт с MODX Evo на Revo. Использовал Provisioner. Структура документов и чанки перенеслись нормально, а вот зарегистрированные пользователи не переносятся.
Подскажите пожалуйста, как это сделать? Подозреваю что через SQL-запросы, я в этом полный ноль.
Комментарии: 6
Однажды была задача перенести пользователей из самописного сайта на revo, меня выручил ImportUsersX, попробуйте, думаю тоже поможет
Большое спасибо, попробую.
ImportUsersX не поддерживает версии старше 2.2. Попробовал User Import — не получается.
Из таблицы modx_web_users на Evo в таблицу modx_users на Revo худо-бедно перенес с помощью запроса:
INSERT INTO `revo`.`modx_users` (`username`, `password`)
SELECT `username`, `password`
FROM `evo`.`modx_web_users`;
А вот из таблицы modx_web_user_attributes не получается, выходит ошибка:
INSERT INTO `revo`.`modx_user_attributes` (`fullname`, `email`)
SELECT `fullname`, `email`
FROM `evo`.`modx_web_user_attributes`
ERROR
#1062 — Дублирующаяся запись '0' по ключу 'internalKey'
INSERT INTO `revo`.`modx_users` (`username`, `password`)
SELECT `username`, `password`
FROM `evo`.`modx_web_users`;
А вот из таблицы modx_web_user_attributes не получается, выходит ошибка:
INSERT INTO `revo`.`modx_user_attributes` (`fullname`, `email`)
SELECT `fullname`, `email`
FROM `evo`.`modx_web_user_attributes`
ERROR
#1062 — Дублирующаяся запись '0' по ключу 'internalKey'
Вообще, по-хорошему, так делать нельзя. Очень нельзя. Тупо переносить данные посредством SQL — чревато как раз такими ошибками, потери целостности данных и всего такого прочего.
Нужно было сделать примерно так:
1) Написать SQL выборку пользователей из Evo.
2) Использовать ее в скрипте, в котором при переборе каждой строчки из таблицы через MODX API создавался бы новый пользователь в Revo.
3) Может возникнуть проблема с сохранением паролей, но в таком случае пришлось бы просто выслать новые пароли всем пользователям. Это тоже не большая проблема.
Нужно было сделать примерно так:
1) Написать SQL выборку пользователей из Evo.
2) Использовать ее в скрипте, в котором при переборе каждой строчки из таблицы через MODX API создавался бы новый пользователь в Revo.
3) Может возникнуть проблема с сохранением паролей, но в таком случае пришлось бы просто выслать новые пароли всем пользователям. Это тоже не большая проблема.
Спасибо за ответ. Пока все это слишком сложно для меня, мне еще учиться и учиться.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.