【发布时间】:2019-05-23 23:59:29
【问题描述】:
我正在使用 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)
这是完美的工作,但是;我只想向 Teacher 模型添加一个字段:
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
错误错误错误 django.db.utils.OperationalError: "表已经存在"
或者这样的……
每次只更改一个字段,得到 Django 的所有错误...
我怎样才能摆脱这种类型的错误??
谢谢。
【问题讨论】:
标签: django migration migrate django-database django-errors