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