Syncdb Django вставляет дублированные записи в таблицу auth_permission - PullRequest
2 голосов
/ 28 декабря 2011

Я создал свои модели в django и запустил manage.py syncdb

Все было хорошо, пока я не добавил новую модель в существующее приложение. При повторном запуске syncdb дублированные записи были вставлены в таблицу auth_parmission. Даже для входа в приложение "admin".

Я сделал тест, чтобы удалить новую модель, удалить базу данных, создать пустую и запустить syncdb. Это загрузило мои начальные данные из существующего прибора.

Когда я снова запускаю «syncdb» (без добавления новой модели), происходит то же самое: дублированные записи были вставлены в таблицу auth_permission.

Какое-либо объяснение того, что происходит и как избежать этих дублированных записей?

Спасибо

1 Ответ

4 голосов
/ 29 декабря 2011

Скорее всего, ваш исходный набор данных содержит записи из auth_permission. Django создает их сначала во время syncdb, а затем запускает приборы. Ваш прибор затем создает их снова.

Если вы используете Django 1.3+, вы можете использовать --exclude auth с командой управления dumpdata для создания ваших приборов. В противном случае вам нужно будет либо вручную перечислить все приложения / модели, которые должны быть включены (чтобы auth не было по умолчанию), либо вручную отредактировать прибор и удалить записи auth.

...