码迷,mamicode.com
首页 > 其他好文 > 详细

django-建表出现的错误

时间:2019-12-22 14:24:51      阅读:100      评论:0      收藏:0      [点我收藏+]

标签:启用   problem   data   init   完整性   没有   mysq   mysql   比较   

在执行python3 manage.py migrate时出现以下错误

?: (mysql.W002) MySQL Strict Mode is not set for database connection default
    HINT: MySQLs Strict Mode fixes many data integrity problems in MySQL, such as data truncation upon insertion, by escalating warnings into errors. It is strongly recommended you activate it. See: https://docs.djangoproject.com/en/1.11/ref/databases/#mysql-sql-mode

就是没有给mysql连接启用严格模式,而严格模式能解决很多数据完整性问题,官方墙裂建议开启。

严格模式对于数据完整性校验比较严格,对SQL语句的健壮性要求更高,比如不允许NOT NULL字段插入没有默认值的数据,以及上面提到的插入数据被截断提示由警告变成错误。

消除这个警告有两种方案:

  1. OPTIONS添加开启的严格命令,对当前连接生效
    DATABASES = {
          default: {
              ENGINE: django.db.backends.mysql,
              NAME: stock,
              USER: root,
              PASSWORD: root,
              HOST:127.0.0.1,
              PORT:3306,
              OPTIONS: {
                  "init_command": "SET sql_mode=‘STRICT_TRANS_TABLES‘",                                                              
              }
          }
      }

     

  1. 修改myql的配置文件/etc/my.cnf,重启后对所有连接生效
    [mysqld]下面添加如下列:
    sql_mode=STRICT_TRANS_TABLES

     



作者:挨踢的懒猫
链接:https://www.jianshu.com/p/bc41a8bf9d9b

django-建表出现的错误

标签:启用   problem   data   init   完整性   没有   mysq   mysql   比较   

原文地址:https://www.cnblogs.com/lutt/p/12079557.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!