如果我有两个模型,一个继承自另一个并使用迁移等设置数据库,如下所示:
class TemplateProduct(models.Model):
type = models.CharField(max_length=20)
class Product(TemplateProduct):
name = models.CharField(max_length=80)
那么我将如何迁移数据库以使Product不会从TemplateProduct继承?说我只想要这些模型:
class TemplateProduct(models.Model):
type = models.CharField(max_length=20)
class Product(models.Model):
name = models.CharField(max_length=80)
当我尝试迁移时,我收到以下错误:
django.db.utils.ProgrammingError: column "templateproduct_ptr_id" of relation "product_product" does not exist
然后当我删除删除" templateproduct_ptr_id"从迁移,我得到以下错误:
django.core.exceptions.FieldError: Local field u'id' in class 'Product' clashes with field of similar name from base class 'TemplateProduct'
正如标题所说:当我不继续使用模型时,如何在Django中迁移更改?
答案 0 :(得分:0)
所以我的解决方案是删除这两个模型。然后python manage.py makemigrations --merge
,然后我按照我想要的方式添加模型,最后再次运行python manage.py makemigrations --merge
以重新添加模型。
这可能不是最优雅的解决方案,但它有效。