首页 > 解决方案 > 无法通过迁移更改我的 Django 模型

问题描述

我尝试实施我在这里找到的许多解决方案,但没有任何帮助,所以我正在寻找答案。

在我的 Django 项目中,我有具有以下模型的 Model.py:


class Boat(models.Model):
    boatId = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    manufacturer = models.ForeignKey(Manufacturer, related_name='boatModels', on_delete=models.CASCADE, default=None)
    modelName = models.CharField(max_length=256, default=None)
    loa = models.FloatField(default=None)
    draftMin = models.FloatField(default=None)
    draftMax = models.FloatField(default=None)
    displacement = models.IntegerField(default=None)
    makerURL = models.CharField(max_length=1000, default=None)
    videoURL = models.CharField(max_length=1000, default=None)
    tags = TaggableManager()

最初我在最新添加的字段中遇到了这个错误videoURL

/boats/ 处的 OperationalError 没有这样的列:boat_app_boat.videoURL

现在是这个:

/admin/boat_app/boat/edc81b63-d8a5-4ab2-887d-97703554dc4e/change/ 处的溢出错误 Python int 太大而无法转换为 SQLite INTEGER

正如一些人建议的那样,我确实搞砸了删除旧迁移,但我认为这只会让事情变得更糟。最终“按书”迁移的最佳方式是什么,或者如果说不可能的话,我会接受有关如何从头开始的建议,因为我的数据库中只有几个项目。

标签: djangodjango-modelsdjango-migrations

解决方案


因为 CharField 允许 256 个字符

如果可以将 FileField 和 URLField 用于 videoURL 和 makerURL


推荐阅读