2

I have created my models in django and run manage.py syncdb

Everything was ok, until I added a new model in an existing app. When I run syncdb again, duplicated entries were inserted in auth_parmission table. Even for entry log from "admin" app.

I made a test to remove the new model, drop the database, create an empty one and run syncdb. This loaded my initial data from an existing fixture.

When I run "syncdb" again (without adding any new model), the same thing happened: duplicated entries were inserted in auth_permission table.

Any explanation of what's happening and how to avoid those duplicated entries?

Thanks

Alexey Savanovich
  • 1,893
  • 11
  • 19
duduklein
  • 10,014
  • 11
  • 44
  • 55

1 Answers1

4

Most likely your initial data fixture includes entries from auth_permission. Django creates these initially during syncdb and then runs the fixtures. Your fixture then creates them again.

If you're running Django 1.3+, you can use --exclude auth with the dumpdata management command to create your fixtures. Otherwise, you'll need to either manually list all the apps/models that should be included (so that auth won't be by default) or manually edit the fixture afterwards and remove the auth entries.

Chris Pratt
  • 232,153
  • 36
  • 385
  • 444