首页 > 其他 > 详细

数据迁移混乱的解决方案与pycharm乱码问题

时间:2019-03-10 22:18:16      阅读:321      评论:0      收藏:0      [点我收藏+]

 

如果数据库迁移数据混乱,需要删除进行重建,一般情况下线上环境不会遇到。步骤如下

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]: <QuerySet [<Student: 1-心蓝-0>, <Student: 2-litao-0>, <Student: 3-梦洁-0>, <Student: 4-魏明凯-0>, <Student: 5-litao-0>, <Student: 6-刘洋-0>, <Student: 7-Amie-0>, <Student: 8-Amie-0>, <Student: 9-aMie-0>]>

In [62]: Student.objects.values(name).filter(name__exact=amie)                                                                                                                                                    
Out[62]: <QuerySet [{name: Amie}, {name: Amie}, {name: aMie}]>

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乱码问题

原文:https://www.cnblogs.com/taoge188/p/10507355.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!