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
-~----------~----~----~----~------~----~------~--~---

Reply via email to