o
    uvXj
  ã                   @   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di |¤Ž}| | jdi |¤Ž¡ |S )N© )ÚsuperÚcheckÚextendÚ_check_sql_mode)ÚselfÚkwargsÚissues©Ú	__class__r   ú`/var/www/html/myproject/venv/lib/python3.10/site-packages/django/db/backends/mysql/validation.pyr      s   zDatabaseValidation.checkc                 K   sˆ   | j  ¡ �}| d¡ | ¡ }W d   ƒ n1 sw   Y  t|r(|d  d¡ndƒ}|ddh@ sBtjd| j j dt	ƒ f d	d
�gS g S )NzSELECT @@sql_moder   ú,r   ÚSTRICT_TRANS_TABLESÚSTRICT_ALL_TABLESz9MySQL Strict Mode is not set for database connection '%s'a   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/%s/ref/databases/#mysql-sql-modez
mysql.W002)ÚhintÚid)
Ú
connectionÚcursorÚexecuteÚfetchoneÚsetÚsplitr   ÚWarningÚaliasr   )r   r   r   Úsql_modeÚmodesr   r   r   r
      s   

þ
üù	z"DatabaseValidation._check_sql_modec                 C   sx   g }|  d¡r!|jr!|jdu st|jƒdkr!| tjd|dd�¡ |jr:| ¡ | j	j
v r:| tjd| 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éÿ   zBMySQL does not allow unique CharFields to have a max_length > 255.z
mysql.E001)Úobjr   z6MySQL 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   ÚErrorÚdb_indexÚlowerr   Ú_limited_data_typesr   )r   ÚfieldÚ
field_typeÚerrorsr   r   r   Úcheck_field_type   s,   ýÿÿøÿ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    