django - Django 如何摆脱迁移错误
问题描述
我正在使用 Django;当我更改模型时,每次都会出错。
我只更改模型中的一个字段,并且每次都愚蠢地出现很多错误。
django.db.utils.OperationalError:没有这样的表:
或者
django.db.migrations.exceptions.InconsistentMigrationHistory:
或者
OperationalError 没有这样的列:table.colunm
或者
django.db.utils.OperationalError:“表已经存在”
和 bla bla bla ..
我可能在 Django 中得到了所有错误类型,现在它真的很困扰我。
我每次都在尝试所有解决方案:
- 删除迁移
- 寻找 。-path " /migrations/.py " -not -name " init .py" -delete
- 寻找 。-path " /migrations/.pyc " -delete
- 清除每个应用程序的迁移历史记录
- 删除实际的迁移文件。
- 创建初始迁移
- 伪造初始迁移
- python manage.py migrate --fake
- python manage.py migrate --fake-initial
- python manage.py migrate --run-syncdb
- 删除数据库
我能找到的每一个解决方案。
愚蠢地尝试所有解决方案,并且;最后,是的,我可以找到解决方案,但是,我现在真的很厌倦这个愚蠢的错误。
有什么办法可以摆脱 Django 中的迁移错误?只有我需要这个答案;'当我只更改一个模型字段时,为什么我每次都会收到这些疯狂的错误????!!!?'
例如 :
这是我的模型:
from django.db import models
from django.conf import settings
from etahfiz.sabitler import DERS_SEVIYESI
# Create your models here.
class Student(models.Model):
systemId = models.CharField(max_length=15, unique=True )
adSoyad = models.CharField(max_length=20, blank=True)
dersSeviyesi = models.CharField(max_length=15,choices=DERS_SEVIYESI )
def __str__(self):
return str(self.systemId)
class Teacher(models.Model):
systemId = models.CharField(max_length=15 , unique=True)
user = models.OneToOneField(settings.AUTH_USER_MODEL)
adSoyad = models.CharField(max_length=20, blank=True)
def __str__(self):
return str(self.systemId)
class StuTeach(models.Model):
student = models.ForeignKey(Talebe)
teacher = models.ForeignKey(Hoca)
tarihBas = models.DateField()
tarihBit = models.DateField(blank=True, null=True)
这工作得很好,但是;我只想向教师模型添加一个字段:
dersSeviyesi = models.CharField(max_length=15,choices=DERS_SEVIYESI )
教师模型现在是这样的:
class Teacher(models.Model):
systemId = models.CharField(max_length=15 , unique=True)
user = models.OneToOneField(settings.AUTH_USER_MODEL)
adSoyad = models.CharField(max_length=20, blank=True)
dersSeviyesi = models.CharField(max_length=15,choices=DERS_SEVIYESI )
def __str__(self):
return str(self.systemId)
当我尝试迁移时:
python manage.py makemigrations sinif
python manage.py migrate
error error error django.db.utils.OperationalError: "表已经存在"
或之类的..
每次只更改一个字段,就会得到 Django 的所有错误......
我怎样才能摆脱这种类型的错误?
谢谢你。
解决方案
转到您的数据库并找到迁移表并删除条目。然后再次运行迁移。这时候你可能会面临 ContentType 已经存在。然后删除 content_type 表。或者,最简单的解决方案是删除数据库并重新创建,但是如果您有重要数据,则所有数据都会丢失。
推荐阅读
- angular - Reverse function strange behaviour when scroll
- reactjs - Formik 复选框不改变值
- android - Constraint Flow layout rows are getting overlapped
- reactjs - React Router Prompt,提示仅针对特定 url 进行重定向
- javascript - 角度材料垫选择空值在更改事件上触发 2 次
- sas - 如何在SAS中对线性回归进行似然比检验
- php - `$this->upload->do_upload()` 无法使用 ajax
- azure - Microsoft Bot 在模拟器中工作,但不能在 azure 网络聊天中工作
- python-3.x - for 循环中的 Counter() 函数看起来很奇怪
- datetime - 当我将 datetime64[ns] 列转换为索引时,其类型更改为
我将数据集中的 datetime64 列转换为索引。我试图用它来按月绘制箱线图,按年绘制另一个箱线图。我无法做到这一点,因为索引的类型似乎是 M8[ns]。我试图将其更改为 datetime64[ns] 但这是不可能的。
我会很感激这里的一些帮助。
<