在 Python3-Mac OS-django配置MySQL数据库 这个博客中,用到了Django框架的数据迁移功能。
python3 manage.py makemigrations (应用名,选写)
python3 manage.py migrate (应用名,选写)
成功迁移后。我想,那如果我把迁移的表手动删除了怎么办?能再次运行 migrate恢复么?我觉得试一下。我的目录下已经生成的数据迁移的文件了,所以不需要再执行 makemigrations命令生成了。我的数据库中也已经有表了
数据库有表了:
我这个时候把user表删除了。再执行 python3 manage.py migrate 命令,看能不能重新把user表生成了。
经过测试,发现user表没有生成。好难受!!!那怎么办?
办法一:打开django_migrations表,把id=1的这条记录删除了。为什么要删除这条记录呢,因为App是我django项目的应用的名称。这个也是数据迁移文件生成的地方。
删除id=1的这条记录有,再执行 python3 manage.py migrate 这个命令。发现user表出现了。
办法二:
1、首先确认你的myql已经添加到环境变量中了,没有的话在Mac的Terminal中运行命令:export PATH=$PATH:/usr/local/mysql/bin 把mysql添加到环境变量中
2、在Mac的Terminal中运行命令:python3 manage.py sqlmigrate App 0001 | python manage.py dbshell
这样也可以哦!!!其中`App`是我django项目的一个应用的名称 `0001`是数据迁移文件的编号。
参考: