Django 删除django生成表后如何根据models.py中的类自动映射?

我在models.py中定义了如下代码:

class Grades(models.Model):
    gname       = models.CharField(max_length=20)
    gdate       = models.DateTimeField()
    ggirlnum    = models.IntegerField()
    gboynum     = models.IntegerField()
    isDelete    = models.BooleanField(default=False)
    def __str__(self):
        return "%s-%d" %(self.gname,self.gboynum)
class Students(models.Model):
    sname   = models.CharField(max_length=20)
    sgender = models.BooleanField(default=True)
    sage    =models.IntegerField()
    scontend=models.CharField(max_length=20)
    isDelete=models.BooleanField(default=False)
    sgrade  =models.ForeignKey("Grades",on_delete=models.CASCADE)

通过代码:
1.python manage.py makemigrations
2.python manage.py migrate
在mysql数据库中生成了两个类表以及对应的django自动生成的表。
但是突然发现有个变量类型定义错了,手动在cmd中删除了这两个表,本以为再次执行上两段代码能够再次将两个类映射到数据库中,但是现实并非如此。
首先执行1,反馈
No changes detected
然后执行2,反馈
django.db.utils.ProgrammingError: (1146, "Table 'helloworld.myapp_grades' doesn't exist")
之前被我删除的表找不到了,而且没有自动映射过去。
解决办法:
首先我删除了数据库中的django.migrations表,然后再删除migrations文件夹下的0001_initial文件,再次执行代码1,2,编译通过完美。
然而,数据库中并没有成功映射出数据库。这次,我没有删除django.migrations,而是将表中的关于这个项目的记录给删除掉,然后继续执行1,2。完美,在数据库中出现我的两个类表。
删除前migrations表中数据:
在这里插入图片描述
删除后migration数据:
在这里插入图片描述原理是因为在migraions数据库中已经记录到这个项目已经migration过了,那么只要删除这条数据,系统认为该项目还没有migrate过而再次映射数据库。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Volavion

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值