[РЕШЕНО] Глюк auto_increment в таблице users при импорте дампа

Главные вкладки

Аватар пользователя Lex-DRL Lex-DRL 26 декабря 2009 в 9:43

Обнаружил такую проблему: при импорте дампа в таблице users постоянно происходит одна ересь: пользователь с id=0 (тот, который выполняет роль гостя) почему-то получает следующий по автоинкременту номер. И, соответственно, автоинкремент увеличивается на 1. Т.е. id пользователей такие:

В дампе:
0
1
2
3
auto_increment 4

После импорта в базе:
4
1
2
3
auto_increment 5

Я это не сразу заметил, поэтому в базе полно "пробелов" после этого. Чтоб никаких "косяков" не было, я теперь каждый раз после импорта вручную через phpMyAdmin правлю эти числа обратно. Но замучился уже.

В чём проблема? И как это можно исправить?

Комментарии

Аватар пользователя kosilko kosilko 26 декабря 2009 в 13:43

после восстановления sypex dumper'ом советую просто посещать админку -> отчет о состоянии (admin/reports/status) . Друпал при заходе на данную страницу молча фиксит этот косяк в БД.

Аватар пользователя Lex-DRL Lex-DRL 26 декабря 2009 в 16:22

И чем делаете дамп?
phpMyAdmin 2.6.1 (тот, что в Денвере)

sypex dumper
Не знаком с этой тулзой, но уже несколько раз встречал это название здесь. Наверное, потискаем её.

Попробуйте добавить в начало файла (ну почти в начало) SET SQL_MODE='NO_AUTO_VALUE_ON_ZERO';
А там никакие другие таблицы от этого случаем слететь не могут? Или можно поставить эту инструкцию непосредственно перед drop table для users? Сорри за нубство, с mysql знаком только на уровне принудительного прописывания кодировок в дампе.

Аватар пользователя Lex-DRL Lex-DRL 11 марта 2010 в 12:56

Недавно обнаружил, что проблема пропала. Произошло это после того, как я переустановил денвер. Там более новая версия phpMyAdmin и мускула.
Однако в эпопее выбора оптимального дампера/бэкапера я остановился на бесплатной (Community-) версии SQLyog. sypex dumper работает нестабильно. Во всяком случае, в нынешних бэта-версиях. Как появится нормально работающая, скорее всего перейду на него.
Для импорта больших баз на сервере использую скрипт 110dbmanager, который остался от аккаунта на 110mb.com. Использовать его на других сайтах можно.