Возникла задача перенести базу пользователей с сайта на Drupal5 на сайт на Drupal6. База пользователей - это список пользователей с аккаунтами, ролями, профилями и картинками. Насколько я понял, это таблицы files, profile_fields, profile_values, role, users, users_roles.
Я установил на обоих сайтах модуль Backup&Migrate, экспортировал указанные таблицы (структуру и данные) и импортировал на сайте с Drupal6. Теперь на новом сайте эти таблицы имеют формат Drupal5, что приводит, например к проблеме при создании материала (из-за отсутствия поля signature_format в таблице users); да и непонятно, что будет при добавлении новых файлов или пользователей, так как в Drupal6 поля-идентификаторы в этих таблицах стали автоинкрементными; и т.д. Я надеялся, что update.php исправит ситуацию, но этого не произошло. Кроме как воспользоваться phpmyadmin и вручную править структуру в таблицах (или же вручную править INSERT в файле экспорта) ничего на ум не приходит. Но это как-то ненадежно. Прошу помощи у сообщества, возможно кто-то уже решал подобную задачу.
Комментарии
Модуль Backup & migrate тут не нужен. Последовательность действий такая:
После этого шестой Друпал конвертнет старую базу в свой новый формат и вы сможете вытащить таблицу юзеров и перенести ее на другой сайт на шестом Друпале.
Ромка, спасибо за совет! Я рассматривал этот вариант, но пока не могу воспользоваться им, так как у меня нет прав на создание и разворачивания дампа БД. Нет также доступа к phpmyadmin, такие походные условия
Да и база обширная, а требуется конвертнуть всего несколько процентов. А потом еще вытаскивать нужные таблицы. Сложновато как-то. А так - выбрал мышкой нужные таблицы, экспорт/импорт, осталось где-то указать (выставить флаг) что эти таблицы конвертировать. Ведь Drupal6 как-то понимает, когда, и, самое главное, каким образом конвертировать из старого в новый формат.
Все-таки, попытаться как Ромка посоветовал, поставить Sypex dumper, стащить базу на локал сервер, проделать все, как посоветовал Ромка, нужные таблицы потом задампить и залить в новый сайт тем же дампером.
Ну тогда, как вариант:
Спасибо всем откликнувшимся, но я решил для начала попробовать свою начальную задумку - изменить при помощи phpmyadmin структуру баз. Я установил модуль Schema, который сравнивает текущую структуру таблиц с эталонной и выдает отличия. Таким образом, я правил структуру и обновлял отчет модуля, пока Mismatch стал равен 0.
Трудность возникла при изменении таблицы Users. Я переименовал поле uid в uid2, отсортировал таблицу по uid2. Обнаружил две "дыры" в нумерации (...39, 40, 43, 44... ), добавил две записи. Затем создал поле uid c параметрами AUTO INCREMENT и выполнил запрос UPDATE users SET uid=uid2, после чего удалил uid2.
Надеюсь, дальше будет все хорошо.
Жесть. Зачем всё это? Если только пользователи (без профилей, комментов и пр.), то достаточно таблицы users.
Это вообще зачем?
Dan, я писал в топике, что нужен "список пользователей с аккаунтами, ролями, профилями и картинками.", поэтому таблицы users недостаточно.
В phpmyadmin поле uid упорно не желало становиться автоинкрементным с PRIMARY KEY. Удалось это сделать, только создав новое пустое поле, указав при добавлении поля одновременно автоинкремент и PRIMARY KEY.
Понял, "с аккаунтами, ролями, профилями и картинками" пропустил )