【问题标题】:How to resolve the Migration Errors?如何解决迁移错误?
【发布时间】:2023-03-16 18:05:01
【问题描述】:

我有两个模型,即;模型 1 和模型 2。 Model2 中的一个字段作为 Model1 的外键。这里 Model1 的主键是 'id'。但是现在我修改了主键字段,删除了 id 并添加了名为 demo_num 的字段作为主键。现在我的模型看起来像

class Model1(models.Model):
  dem_num = models.IntegerField(primary_key=True)

class Model2(models.Model):
   dem_fk = models.Foreignkey('Model1')

但是当我进行迁移时,它会显示类似的错误,

django.db.utils.OperationalError: (1829, "Cannot drop column 'id': required in a foreign key constraint of table Model2)

如何解决这个问题?

注意: 在不删除迁移文件的情况下,我想这样做

【问题讨论】:

  • 您需要清理您的Model2 或创建数据迁移,您必须确保:没有其他解决方案可以更改“PK”字段

标签: mysql django


【解决方案1】:

首先在Model1中创建新的主键dem_num而不删除id

class Model1(models.Model):
   dem_num = models.IntegerField(primary_key=True)

然后将此字段作为外键链接到 Model2

class Model2(models.Model):
   dem_fk = models.Foreignkey('Model1', to_field='dem_num')

【讨论】:

    猜你喜欢
    • 2017-08-31
    • 2020-01-06
    • 1970-01-01
    • 2019-08-07
    • 2015-06-20
    • 2019-11-21
    • 1970-01-01
    • 2021-12-30
    • 1970-01-01
    相关资源
    最近更新 更多