场景:
因数据库默认字符集不是utf8,当上传中文字符时报错。
处理过程中删除了原数据表,重新迁移,数据库表未能创建
解决步骤:
- 修改数据库中相应表的字符集,上传数据失败。
- 修改整个数据库的字符集,上传数据失败。
- 修改mysql配置文件/etc/my.cnf.d/server.cnf,重启数据库,上传数据失败。
因表中无重要数据,故删除相应的表。再重新迁移。此时问题出现。
1、执行python manage.py makemigrations :未报错,但是已经创建过一次,故没有任何改变
2、执行python manage.py migrate :未报错,但是数据库中未能重新生成表
3、重试几次无果后,以为是数据库下django_migrations表因上一次数据迁移提交已记录,且此次models表未做改变。忽略了此次提交(第15行字段被删除, 第16行是迁移成功后重新创建了表后添加)
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、前端重新测试提交中文数据,数据提交成功