(обновлено)
Вы правы (см. Ваши комментарии ниже). Проблема действительно с auth.permission
.
При запуске syncdb
, auth.permission
равен , заполняется автоматически значениями по умолчанию для всех установленных моделей . При любых последующих запусках syncdb
будут добавляться новые записи для всех недавно добавленных моделей.
Если на более позднем этапе вы сбрасываете базу данных и снова запускаете syncdb
, значения будут повторно заполнены, и в зависимости от порядка проверки установленных моделей соответствующие разрешения могут быть добавлены в другом порядке, давая ему другие идентификаторы. из вашей предыдущей базы данных (если модели были установлены поэтапно).
Чтобы избежать этой проблемы, вы можете либо пропустить auth.permission
при выводе данных auth
(как вы уже указали в комментариях), либо сбросить таблицу auth.permission
перед загрузкой дампа данных.
Кроме того, важно использовать естественные ключи (--natural
) при выгрузке данных, чтобы они не ссылались на связанные данные, используя целочисленный идентификатор (который может не совпадать при загрузке в другой БД). Эта функция была введена в Django 1.2 .