Opened 10 years ago

Closed 10 years ago

#24314 closed Bug (invalid)

django 1.7 migration problem: foreign key column to an one-to-one model is misidentified as "id"

Reported by: jackxpeng Owned by: nobody
Component: Migrations Version: 1.7
Severity: Normal Keywords: migration, one-to-one, foreign key
Cc: Triage Stage: Unreviewed
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description

I ran into this problem trying to run manage.py test. The error I get looks like this:

ALTER TABLE "quote_agentorderrejection" ADD CONSTRAINT "quote_agentor_agent_id_1388a6f8215473de_fk_user_agentprofile_id" FOREIGN KEY ("agent_id") REFERENCES "user_agentprofile" ("id") DEFERRABLE INITIALLY DEFERRED
Traceback (most recent call last):
File "/home/jack/Envs/envp1/lib/python3.4/site-packages/django/db/backends/utils.py", line 66, in execute
return self.cursor.execute(sql, params)
psycopg2.ProgrammingError: column "id" referenced in foreign key constraint does not exist

I realize this is similar to https://code.djangoproject.com/ticket/23415, which has been fixed. However, my case is a little different.

class AgentOrderRejection(models.Model):
    agent = models.ForeignKey(AgentProfile)

But AgentProfile itself is a one-to-one model to the user model, so its primary key is user_id, not id.

    user = models.OneToOneField(USER_MODEL, primary_key=True)

But django 1.7's migration incorrectly identifies id as the primary key and looks for it in the agentprofile model and fails. Thanks.

Change History (2)

comment:1 by jackxpeng, 10 years ago

Never mind. I only see this problem when I try to run manage.py test. I created a test case and it worked. I also suspected it was because of django-pgfields but it also worked. So I'm still trying to find out what the problem is.

comment:2 by jackxpeng, 10 years ago

Resolution: invalid
Status: newclosed
Note: See TracTickets for help on using tickets.
Back to Top