如果数据库迁移数据混乱,需要删除进行重建,一般情况下线上环境不会遇到。步骤如下
1.删除项目app下所有的除去__init__.py的所有文件与目录。

2.删除数据库中所有app项目的创建的表

3.删除所有django_migrations表中,所有与app项目相关的表(例如:teacher)

4.运行迁移数据库命令
python mange.py makemigrations teacher
5.运行migrate命令,使迁移生效
python manage.py migrate #(执行后,在数据库里能够查到表)
pycharm乱码问题解决方案:
将File-->setting下所有关于encoding的都设置为uft-8

第二个地方可以导致乱码的地方:

mysql数据库大小写敏感设置
In [61]: Student.objects.all()
Out[61]: , , , , , , , , ]>In [62]: Student.objects.values('name').filter(name__exact='amie')
Out[62]: In [63]: res = Student.objects.values('name').filter(name__exact='amie')
In [64]: print(res.query)
SELECT `teacher_student`.`name` FROM `teacher_student` WHERE `teacher_student`.`name` = amie #这里代表不区分大小写
当数据库或者表排序规则为utf8_general_ci表示不区分大小写,使用utf8-bin是大小写敏感。
如果数据库的--->编辑数据库-->排序规则为:utf8_general_ci表示不区分大小写
数据表--->设计表-->选项-->排序规则为:utf8_general_ci表示不区分大小写
一般字段也可单独设置排序规则


contains区分大小写
In [65]: res = Student.objects.values('name').filter(name__contains='amie')
In [66]: print(res.query)
SELECT `teacher_student`.`name` FROM `teacher_student` WHERE `teacher_student`.`name` LIKE BINARY%amie% #有BINARY代表区分大小写
本文介绍了在数据库迁移过程中遇到的数据混乱问题的解决步骤,包括删除项目文件、清理数据库迁移记录并重新执行迁移。同时,针对PyCharm中的乱码问题,建议将所有编码设置为UTF-8。此外,还详细说明了MySQL数据库大小写敏感设置,指出utf8_general_ci表示不区分大小写,而utf8_bin则区分大小写,并提供了查询示例来展示其区别。


被折叠的 条评论
为什么被折叠?



