2011-12-28 7 views
2

я создал свои модели в Django и запустить manage.py syncdbДжанго вставляют дублированные записи в таблице auth_permission

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

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

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

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

Благодаря

ответ

4

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

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