Django数据库迁移的错误
当我们在使用Django的ORM时,一般分为三步
- 在models.py中设置模型
- 执行makemigrations
- 执行migrate
在这三步总会多多少少的遇到一些错误,编者以比较常见的错误为例,提出了一些解决方法。
一、错误描述
1、创建了新的字段,数据库中无
2、执行了makemigrations后手动在数据库中删除了表
- 再次执行时没有报错却也没在数据库中生成表
- 再次执行时报错说并不存在那样一个文件或者目录
二、解决方法
1.添加字段后数据库中无
这种情况一般是没有执行迁移映射操作,只需要
- 在虚拟机中,进入到相应的项目地址,然后
python manage.py makemigrations app_name
python manage.py migrate app_name
==app_name==为创建的app名
- 或者在pycharm 中,点击tools->start ssh session
再进入相应的项目地址输入上述命令
-
或者在pycharm中,点击tools->Run manage.py Task
直接输入makemigrations app_name执行不出错后,再输入migrate app_name
2.数据库中删表引起的错
解决方法是,
1.将app文件包中的
这类文件删除,即前带有序号的文件删除
-
打开数据库,将数据库中表django_migrations与相应app模型表的数据删除,这里以app为doc为例
使用代码,将相应信息删除【其中的app为字段,app_name为创建的app名】
delete from django_migrations where app = 'app_name'
重新同步文件后,再次执行makemigrations 和 migrate操作。【见解决方法1】
三、联系方式
如果您有什么意见或者建议,欢迎与我联系!