Python Django表错误的多个主键
我的Django应用程序在localhost上运行良好,但当我尝试将其推送到Heroku时,我得到以下错误: 远程:django.db.utils.ProgrammingError:表“Clientes_productlist”不允许有多个主键 我的Python Django表错误的多个主键,python,django,heroku,django-import-export,Python,Django,Heroku,Django Import Export,我的Django应用程序在localhost上运行良好,但当我尝试将其推送到Heroku时,我得到以下错误: 远程:django.db.utils.ProgrammingError:表“Clientes_productlist”不允许有多个主键 我的models.py文件是: class ProductList(models.Model): id_new = models.IntegerField(primary_key=True) sku = models.CharField(
models.py
文件是:
class ProductList(models.Model):
id_new = models.IntegerField(primary_key=True)
sku = models.CharField(max_length=200)
client = models.ForeignKey(get_user_model(), on_delete=models.CASCADE)
name = models.CharField(max_length=256)
description = models.CharField(max_length=1000)
storage = models.CharField(max_length=256)
cost_price = models.CharField(max_length=256)
sell_price = models.CharField(max_length=256)
ncm = models.CharField(max_length=256)
inventory = models.IntegerField(null=True)
class Meta:
unique_together = (('sku', 'client'),)
我正在使用django进出口包以及。因此,我的resources.py
是:
class ProductListResource(resources.ModelResource):
class Meta:
model = ProductList
skip_unchanged = True
report_skipped = True
exclude = ('id',)
import_id_fields = ('sku', 'client',)
fields = ('sku', 'client', 'name', 'description', 'storage', 'cost_price', 'sell_price', 'ncm', 'inventory',)
导致该错误的原因是什么?我如何解决它?若要解决该问题,您需要删除应用程序中存在
ProductList
模型的migrations
文件夹中的所有迁移文件,除了\u init\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuupy
文件,然后运行/manage。然后将这些迁移提交给Heroku 若要解决此问题,您需要删除应用程序中存在产品列表
模型的migrations
文件夹中的所有迁移文件,除了\uuuu init\uuuuuuuuuuuuuuuuuupy
文件,然后运行/manage.py makemigrations
生成新的迁移。然后将这些迁移提交给Heroku 好极了,伙计!再次感谢你的帮助!在这之后,我现在得到了这个错误:列Clientes\u productlist.id\u new不存在第1行:选择“Clientes\u productlist”。“id\u new”,“客户/产品”。。。你对此有什么线索吗?我假设客户有FK到ProductList。因此,它有一个与ProductList迁移相关/依赖的迁移。由于后来创建了ProductList迁移,因此出现了问题。最好从项目中删除所有迁移文件(除了迁移目录中的\uuu init\uuuuuuy.py
文件),然后运行makemigrations
并提交它们。在提交迁移并在heroku中运行迁移之前,还要在heroku中重置DB。也许这个文档将有助于重置数据库:现在我在尝试访问任何页面时出现了这个错误:关系“django_session”不存在第1行:…session_data”,“django_session”,“expire_date”来自“django_se…”不管怎样,我只是在Heroku中删除了整个数据库并将其向后推。现在一切都好了!好极了,伙计!再次感谢你的帮助!在这之后,我现在得到了这个错误:列Clientes\u productlist.id\u new不存在第1行:选择“Clientes\u productlist”。“id\u new”,“客户/产品”。。。你对此有什么线索吗?我假设客户有FK到ProductList。因此,它有一个与ProductList迁移相关/依赖的迁移。由于后来创建了ProductList迁移,因此出现了问题。最好从项目中删除所有迁移文件(除了迁移目录中的\uuu init\uuuuuuy.py
文件),然后运行makemigrations
并提交它们。在提交迁移并在heroku中运行迁移之前,还要在heroku中重置DB。也许这个文档将有助于重置数据库:现在我在尝试访问任何页面时出现了这个错误:关系“django_session”不存在第1行:…session_data”,“django_session”,“expire_date”来自“django_se…”不管怎样,我只是在Heroku中删除了整个数据库并将其向后推。现在一切都好了!