File: //usr/lib/python3/dist-packages/django/db/backends/mysql/__pycache__/validation.cpython-310.pyc
o
�ah � @ s8 d dl mZ d dlmZ d dlmZ G dd� de�ZdS )� )�checks)�BaseDatabaseValidation)�get_docs_versionc s, e Zd Z� fdd�Zdd� Zdd� Z� ZS )�DatabaseValidationc s, t � jdi |��}|�| jdi |��� |S )N� )�super�check�extend�_check_sql_mode)�self�kwargs�issues�� __class__r �E/usr/lib/python3/dist-packages/django/db/backends/mysql/validation.pyr s zDatabaseValidation.checkc K sL | j jddh@ s$tjd| j j| j jf d| j j| j jt� f fdd�gS g S )N�STRICT_TRANS_TABLES�STRICT_ALL_TABLESz6%s Strict Mode is not set for database connection '%s'z�%s's Strict Mode fixes many data integrity problems in %s, such as data truncation upon insertion, by escalating warnings into errors. It is strongly recommended you activate it. See: https://docs.djangoproject.com/en/%s/ref/databases/#mysql-sql-modez
mysql.W002)�hint�id)�
connection�sql_moder �Warning�display_name�aliasr )r r r r r r
s �����z"DatabaseValidation._check_sql_modec C s� g }|� d�r)|jr)|jdu st|j�dkr)|�tjd| jj |dt � dd�� |j
rF|�� | jjv rF|�tjd| jj|f d |d
d�� |S )a
MySQL has the following field length restriction:
No character (varchar) fields can have a length exceeding 255
characters if they have a unique index on them.
MySQL doesn't support a database index on some data types.
�varcharN� z>%s may not allow unique CharFields to have a max_length > 255.zOSee: https://docs.djangoproject.com/en/%s/ref/databases/#mysql-character-fieldsz
mysql.W003)�objr r z3%s does not support a database index on %s columns.zKAn index won't be created. Silence this warning if you don't care about it.zfields.W162)r r r )
�
startswith�unique�
max_length�int�appendr r r r r �db_index�lower�_limited_data_types)r �field�
field_type�errorsr r r �check_field_type! s6 ����
���z#DatabaseValidation.check_field_type)�__name__�
__module__�__qualname__r r
r( �
__classcell__r r r r r s r N)�django.corer �"django.db.backends.base.validationr �django.utils.versionr r r r r r �<module> s