zoukankan      html  css  js  c++  java
  • 数据迁移混乱的解决方案与pycharm乱码问题+mysql数据库大小写敏感设置

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

    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代表区分大小写
  • 相关阅读:
    手下有个人总是用一些小的缺点来否认你的决定的优点,如何解决这个问题? (转载)
    初等代数
    全民上网到全民织网 Web 2.0掀起人民战争
    这个sql语句:列出各门课程成绩最好的两位学生?
    在XML中发送二进制数据
    .NetFramework 数据保存与传输之序列化对象
    Duwamish学习之构架篇错误捕获
    在.NET环境中使用单元测试工具NUnit
    [翻译]XNA外文博客文章精选之fourteen
    [翻译]XNA外文博客文章精选之nine
  • 原文地址:https://www.cnblogs.com/taoge188/p/10507355.html
Copyright © 2011-2022 走看看