【发布时间】:2020-01-18 17:26:58
【问题描述】:
我的模特是
class authenticate(models.Model):
name=models.CharField(max_length=50)
uid=models.CharField(max_length=39,editable=False)
image=models.CharField(max_length=250)
email=models.CharField(max_length=100,primary_key=True)
mobile=models.CharField(max_length=12)
dob=models.CharField(max_length=12)
regno=models.CharField(max_length=10,editable=False)
created=models.CharField(max_length=10,editable=False)
last_login=models.CharField(max_length=10)
department=models.CharField(max_length=5)
admin=models.BooleanField(default=False)
尝试在 Heroku 存储库中迁移我的模型时发生错误:
psycopg2.errors.InvalidTableDefinition: multiple primary keys for table "Auth_authenticate" are not allowed
The above exception was the direct cause of the following exception:
--
--
--
return self.cursor.execute(sql, params)
File "/app/.heroku/python/lib/python3.6/site-packages/django/db/utils.py", line 89, in __exit__
raise dj_exc_value.with_traceback(traceback) from exc_value
File "/app/.heroku/python/lib/python3.6/site-packages/django/db/backends/utils.py", line 84, in _execute
return self.cursor.execute(sql, params)
django.db.utils.ProgrammingError: multiple primary keys for table "Auth_authenticate" are not allowed
当我使用 sqlite DB 时,上述模型运行良好。
【问题讨论】:
-
尝试:
email=models.ForeignKey()然后makemigrate和migrate命令 -
还是同样的错误@YeganehSalami
-
你能重命名你的班级吗?也许你与
Auth模块的表名有冲突 -
如果你没有为模型中的任何字段指定primary_key=True,Django会自动添加一个AutoField来保存主键,所以你不需要在任何一个上设置primary_key=True您的字段,除非您想覆盖默认的主键行为。 stackoverflow.com/questions/43244862/…
-
尝试从头开始迁移