Python3-Mac OS Django数据迁移的几个问题

     在 Python3-Mac OS-django配置MySQL数据库 这个博客中,用到了Django框架的数据迁移功能。

python3 manage.py makemigrations (应用名,选写)
python3 manage.py migrate (应用名,选写)

Django迁移官网的迁移文档

成功迁移后。我想,那如果我把迁移的表手动删除了怎么办?能再次运行 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`是数据迁移文件的编号。

 参考:

原文地址:https://www.cnblogs.com/happyflyingpig/p/14340500.html