0
当我期运用django.db.backends.postgresql_psycopg2
和运行manage.py syncdb
,以下错误引发Django的postgress:多个主键不允许
django.db.utils.ProgrammingError: multiple primary keys for table "token_place" are not allowed
LINE 3: "signatureid" integer NOT NULL PRIMARY KEY REFERENCES "s...
型号:
class TokenPlace(models.Model):
token = models.ForeignKey(Token, db_column='tokenid', primary_key=True)
signature = models.ForeignKey(Signature, db_column='signatureid', primary_key=True)
place = models.IntegerField(primary_key=True)
class Meta:
db_table = 'token_place'
我的模型正确地mysql
但我必须工作部署它在postgres
如何解决这个问题?
错误很明显不是吗?只要删除其中一个主键,它就会重新工作。是否有你想要多个主键的原因? – Wolph
是的。数据库设计需要多个主键,我不能更改数据库设计。 – seyed
检查您是否可以使用[surrogate key](http://en.wikipedia.org/wiki/Surrogate_key)并将'(token,signature)'设置为[unique together](https://docs.djangoproject)。 COM/EN /开发/ REF /模型/选项/#独特在一起)。 – danihp