On Wed, May 14, 2008 at 1:09 AM, Carl Karsten <[EMAIL PROTECTED]> wrote: > > [EMAIL PROTECTED]:~/dev/sites/ridgemoor$ ./manage.py loaddata rm.json > Installing json fixture 'rm' from absolute path. > Problem installing fixture 'rm.json': columns app_label, model are not unique > > How do I debug this?
The error is telling you what is wrong - you are loading data into a model that has a unique_together clause, but you are loading data that is not unique together. However, I can go a little further in this specific case - you have contenttypes in your fixture. Loading contenttypes by fixture is problematic because all the contenttypes you will ever need are created automatically as part of the syncdb. Consider the following sequence of events. 1. Create a project, populate INSTALLED_APPS, run syncdb. 2. Generate a fixture 3. Add a new application to INSTALLED APPS 4. Flush the database, rerun syncdb. 5. Attempt to load the fixture created in 2. Since you changed the applications in INSTALLED_APPS in (3), the order of the contenttypes created in 4 can change (and in your case, _has_ changed). As a result, the database IDs assigned to the content types are not consistent, and when you load your fixture, you can end up with two content type entries for the same content type. The simple solution - don't serialize content types. You don't need to anyway, because they are automatically created by the syncdb process. The only catch on this is if you are using content types in some way, and you need to serialize a reference to a content type. The most likely reason for needing this is if you have a generic relation. In this case, you are slightly stuck - you can't serialize the generic relation without guaranteeing the IDs for the content types, but you can't guarantee the IDs for the content types. This is a known issue, http://code.djangoproject.com/ticket/7052. The only workaround in the meantime is to regenerate or manually tweak your fixtures every time you modify INSTALLED_APPS. The order in which contenttypes are created is consistent if you never modify INSTALLED_APPS, so as long as you are willing to update your fixtures whenever you modify INSTALLED_APPS, it is possible to live with this problem. Yours, Russ Magee %-) --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/django-users?hl=en -~----------~----~----~----~------~----~------~--~---