數據遷移混亂的解決方案與pycharm亂碼問題
阿新 • • 發佈:2019-03-11
bject arm int gen odi queryset 目錄 enc print
如果數據庫遷移數據混亂,需要刪除進行重建,一般情況下線上環境不會遇到。步驟如下
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亂碼問題