美文网首页
搞懂Django的makemigrations和migrate

搞懂Django的makemigrations和migrate

作者: 安和然 | 来源:发表于2020-06-09 11:11 被阅读0次

问题描述:

已有的model,修改之后,想重新建模,于是将migrations文件夹中除init.py之外其他文件都删掉,
再次执行以下步骤python manage.py makemigrations确认成功,执行python manage.py migrate,
提示No migrations to apply.

解决方式:

方式一:(一般就可以解决问题)

1、python manage.py migrate --fake #使用这条命令

方式二:(参考别人的方式)

1、python manage.py dbshell 进到数据库中,执行delete from django_migrations where app='your_appname';
2、python manage.py makemigrations(若migrations文件未删除,可不执行这一步)
3、python manage.py migrate 或 python manage.py migrate --fake

方式三:亲测有用

在django_migrations表中,migrate执行完后会自动添加最后一个。如,init0001。这是系统一个机制,防止重复执行。
即:makemigrations会生成一个migrations文件,执行migrate会执行里面的变更,并把这个执行记录放入到django_migrations表中

在django_migrations表中对应的项目删除即可。就可以重新执行。

相关文章

网友评论

      本文标题:搞懂Django的makemigrations和migrate

      本文链接:https://www.haomeiwen.com/subject/ejkstktx.html