django数据迁移命令执行成功,但未在数据库中生成表


产生原因

有以下两种可能:

1.因数据库默认字符集不是utf8,当上传中文字符时报错。

2.处理过程中删除了原数据表,重新迁移,数据库表未能创建

解决步骤

修改数据库中相应表的字符集,上传数据失败。
修改整个数据库的字符集,上传数据失败。
修改mysql配置文件/etc/my.cnf.d/server.cnf,重启数据库,上传数据失败。

图片[1]-django数据迁移命令执行成功,但未在数据库中生成表-有熊生活
图片[2]-django数据迁移命令执行成功,但未在数据库中生成表-有熊生活

因表中无重要数据,故删除相应的表。再重新迁移。此时问题出现。
1、执行python manage.py makemigrations  :未报错,但是已经创建过一次,故没有任何改变

图片[3]-django数据迁移命令执行成功,但未在数据库中生成表-有熊生活

2、执行python manage.py migrate :未报错,但是数据库中未能重新生成表

图片[4]-django数据迁移命令执行成功,但未在数据库中生成表-有熊生活

3、重试几次无果后,以为是数据库下django_migrations表因上一次数据迁移提交已记录,且此次models表未做改变。忽略了此次提交(第15行字段被删除, 第16行是迁移成功后重新创建了表后添加)

图片[5]-django数据迁移命令执行成功,但未在数据库中生成表-有熊生活

4、重新执行python manage.py makemigrations  和  python manage.py migrate。无报错信息。但创建失败。

5、删除post应用下 migrations文件夹。执行python manage.py makemigrations。迁移文件夹migrations 未能重新创建

6、执行python manage.py makemigrations post   指定应用,post/migrations  迁移文件夹生成成功。

7、python manage.py migrate  数据库表创建成功。

8、前端重新测试提交中文数据,数据提交成功

© 版权声明
THE END
喜欢就支持一下吧
点赞5
分享
评论 抢沙发
游熊的头像-有熊生活

昵称

取消
昵称表情代码图片