django删除migrations文件夹,结果为No Changes解决方案

遇到models模型变动,变动后合并发生问题,故当时做了删除应用文件夹下migrations文件,由于数据库里无较多新数据,故删除后重建,但重建后执行模型合并操作结果为No Changes,不会对应用模型进行变动:

执行python manage.py makemigrations --empty 你的应用名
执行python manage.py makemigrations
执行python manage.py migrate

Table 'xx' already exists"解决方法

执行python manage.py migrate XXX --fake

migrations机制概述

1. Django应用中的model类

model是业务逻辑的数据对象,包含fields和behaviors。
一种model类就是django.db.models.Model类的扩展。
一种model对应数据库中的一张表。

在myFirstDjangoSite/myFirstApp/models.py中,创建model类的示例如下:
 

from django.db import models
	class MyModel(models.Model):
		...

2. migrations文件

在Django应用中,migrations是一系列文件,位于Django应用的migrations目录下,用以存储Django应用中的model类的变化。
每次在Django应用中对model类的修改,都会对应一个migration文件。
一个migration文件与数据库结构的schema的一个版本对应。
从文件名看,migrations文件也是Python软件模块,其中包含各种用以操作数据库的django.db.migrations.operations对象。

3. Django框架中的migrations实现
通过django.db.migrations软件包实现migrations的业务逻辑;
通过SchemaEditor与各种不同的数据库服务器交互,支持多种数据库服务器。
 

4. migrations相关命令
makemigrations
基于当前的models类创建一个新的migration文件
同时修改myproject/myproject/settings.py中的MIGRATION_MODULES变量的值

MIGRATION_MODULES = {
	'mylists': 'mylists.db_migrations'
}
  • migrate

将当前的migration文件内容持久化到数据库中

  • sqlmigrate

根据输入的migrations名称,输出对应的SQL语句

  • showmigrations

显示出Django项目中的所有migrations文件及其状态

python manage.py makemigrations mylists
python manage.py  migrate
python manage.py sqlmigrate mylists 0001

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值