a
    Lcòf  ã                   @   s8   d dl mZ d dlmZ d dlmZ G dd„ deƒZdS )é    )Úchecks)ÚBaseDatabaseValidation)Úget_docs_versionc                       s,   e Zd Z‡ fdd„Zdd„ Zdd„ Z‡  ZS )ÚDatabaseValidationc                    s,   t ƒ jf i |¤Ž}| | jf i |¤Ž¡ |S )N)ÚsuperÚcheckÚextendÚ_check_sql_mode)ÚselfÚkwargsZissues©Ú	__class__© ú`/home/httpd/docs/test/DocsMgr/lib/python3.9/site-packages/django/db/backends/mysql/validation.pyr      s    zDatabaseValidation.checkc                 K   sL   | j jddh@ sHtjd| j j| j jf d| j j| j jtƒ f fdd�gS g S )NZSTRICT_TRANS_TABLESZ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)Ú
connectionZsql_moder   ÚWarningÚdisplay_nameÚaliasr   )r
   r   r   r   r   r	      s"    ÿÿýúÿðÿz"DatabaseValidation._check_sql_modec                 C   s�   g }|  d¡rR|jrR|jdu s,t|jƒdkrR| tjd| jj |dt	ƒ  dd�¡ |j
rŒ| ¡ | jjv rŒ| tjd| jj|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.
        Z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.zfields.W162)r   r   r   )Ú
startswithÚuniqueÚ
max_lengthÚintÚappendr   r   r   r   r   Zdb_indexÚlowerZ_limited_data_types)r
   ÚfieldZ
field_typeÚerrorsr   r   r   Úcheck_field_type&   sB    ÿþýýÿÿøÿ
ÿøÿz#DatabaseValidation.check_field_type)Ú__name__Ú
__module__Ú__qualname__r   r	   r    Ú__classcell__r   r   r   r   r      s   r   N)Zdjango.corer   Z"django.db.backends.base.validationr   Zdjango.utils.versionr   r   r   r   r   r   Ú<module>   s   