当我从django SQLite迁移到PostgreSQL时,我得到以下错误。
django.db.utils.ProgrammingError: cannot cast type smallint to boolean
LINE 1: ... "merchant_view" TYPE boolean USING "merchant_view"::boolean
我可以看到Postgresql中的所有表,甚至是给我上面错误的表。但是在Postgresql中,它的数据类型已经从布尔型变成了smallint型。我也不能改变数据类型从smallint到布尔在postresql。postgresql中的大多数字段都是布尔数据类型。我不知道是什么导致这个错误。如何解决这个错误?
My Model
class ContractLineItems(CommomFields):
payment_app_id = models.AutoField(primary_key = True)
code = models.CharField(max_length=11,unique=True)
module = models.ForeignKey(ContractManager,on_delete=models.CASCADE)
description = models.CharField(max_length=255)
buy_rate = models.DecimalField(max_digits=10,decimal_places=10)
default_rev_share = models.DecimalField(max_digits=10,decimal_places=10)
list_price = models.DecimalField(max_digits=10,decimal_places=10)
billing_type = models.ForeignKey("BillingType",on_delete=models.CASCADE)
merchant_view = models.BooleanField(default=False)
bound_descreption = models.CharField(max_length=255)
user_id = None
trash = None
deleted_at = None
deleted_by = None
Thanks in Advance.
问题解决。
在迁移文件中,字段名merchant_view首先声明为smallPositiveInteger。因此,当迁移到postgresql时,它接受第一个声明。所以我删除了所有迁移的文件,并运行makemigration,它为我工作