Доброе время суток, уважаемые коллеги.
Есть у меня сайт (drupal 4.7) с большим количеством пользователей. Сейчас с нуля написал, переписал, переделал, подправил все под drupal 5. И все что нужно - это перенос таблицы пользователей на новый сайт.
сделал mysqldump'ом дамп таблицы и перенес ее в новую базу на новый сайт (drupal 5). Теперь при регистрации пользователя или изменении информации друпал жалуется на уже существующую запись (по автоинкременту), эта запись под этим id уже существует.
Вопрос: как изменить индекс этого автоинкремента? Например указать drupal'у (sql'ю?), что последняя запись имела id 2222.
Заранее благодарен за ответ
Комментарии
Автоинкремента в таблице users для MySQL, на первый взгляд, нет.
Кстати для PostgreSQL есть:
uid serial CHECK (uid >= 0)
Дополнительные модули в таблицу users не вносили изменения?
Попробуйте изменить структуру таблицы users из дампа согласно приатаченому diff-у и удалить из дампа пользователя с uid = 0, после этого восстановить дамп.
Возможно скоро тоже прийдётся такую процедуру делать.
Находится в таблице sequences.
точно, почему они от автоинкремента отказались?
тогда нужно внести в sequences user_uid uid последнего пользователя.
Автоинкремент в Drupal не используется из-за совместимости.
Как сказал ultraboy@drupal.org, ищи втаблице sequences.
Угу, я уже разобрался, спасибо всем.
Небольшой отчет:
во первых автоинкремент в mysql:
create table 'bla' (`id` int(12) NOT NULL auto_increment, 'ku' int(20) NOT NULL default '0') AUTO_INCREMENT=2368
и автоинкремент id начинается с 2368
во вторых, в юзерс и правда нет автоинкремента надо было сразу смотреть таблицу
и в третьих, вместо автоинкремента значение это хранится в sequences:
INSERT INTO `sequences` VALUES ('users_uid',3), ('menu_mid',90), ('node_nid',20), ('node_revisions_vid',20), ('vocabulary_vid',19), ('term_data_tid',20), ('comments_cid',11), ('votingapi_vote',6), ('votingapi_cache',12);
следовательно решение проблемы:
UPDATE sequences SET id = 8000 WHERE name = 'users_uid'
всем спасибо, тема закрыта