在使用 DJango 框架执行迁移文件的命令时,可以看到出现如下警告:
(ll_env) D:\workspace\workspace-mengll\learning-log>python manage.py migrate
System check identified some issues:WARNINGS:
?: (mysql.W002) MySQL Strict Mode is not set for database connection 'default'
HINT: MySQL's 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/5.0/ref/databases/#mysql-sql-mode
Operations to perform:
Apply all migrations: admin, auth, contenttypes, learning_logs, sessions
Running migrations:
Applying learning_logs.0001_initial... OK(ll_env) D:\workspace\workspace-mengll\learning-log>
虽然可以看到迁移文件执行成功,且数据库中也创建成功了对应的表,但对于稍有强迫症的我们来说总感觉不爽,需要把警告干掉才行,去掉警告信息的配置方式如下:
修改 DJango 创建的应用程序下的 settings.py 配置文件,找到数据库信息配置的部分,添加 sql_mode 配置即可,如下:
DATABASES = {'default': {# 'ENGINE': 'django.db.backends.sqlite3',# 'NAME': BASE_DIR / 'db.sqlite3','ENGINE': 'django.db.backends.mysql', # 数据库引擎'NAME': '数据库名称', # 数据库名称'HOST': '数据库地址', # 数据库地址,本机 ip 地址 127.0.0.1'PORT': 数据库端口, # 端口'USER': '数据库用户名', # 数据库用户名'PASSWORD': '数据库密码', # 数据库密码'OPTIONS': {'init_command': "SET sql_mode='STRICT_TRANS_TABLES'",}}
}
后续再执行迁移文件,可以看到警告已消除。