
    g                     >    d dl mZ d dlmZ d dlmZ  G d de      Zy)    )checks)BaseDatabaseValidation)get_docs_versionc                   *     e Zd Z fdZd Zd Z xZS )DatabaseValidationc                 h    t        |   di |}|j                   | j                  di |       |S )N )supercheckextend_check_sql_mode)selfkwargsissues	__class__s      {/var/www/python.vincentserveurtest.ovh/public_html/venv/lib/python3.12/site-packages/django/db/backends/mysql/validation.pyr   zDatabaseValidation.check   s6    ((*d**4V45    c           	      >   | j                   j                  ddhz  st        j                  | j                   j                  d| j                   j
                  d| j                   j                  d| j                   j                  dt               dfd	      gS g S )
NSTRICT_TRANS_TABLESSTRICT_ALL_TABLESz1 Strict Mode is not set for database connection ''z5's Strict Mode fixes many data integrity problems in z, such as data truncation upon insertion, by escalating warnings into errors. It is strongly recommended you activate it. See: https://docs.djangoproject.com/en/z/ref/databases/#mysql-sql-modez
mysql.W002)hintid)
connectionsql_moder   Warningdisplay_namealiasr   )r   r   s     r   r   z"DatabaseValidation._check_sql_mode   s    OO$$(=?R'SS 33T__5J5JL !OO88 OO88,.
 $! ( 	r   c           	         g }|j                  d      rz|j                  rn|j                  t        |j                        dkD  rJ|j	                  t        j                  d| j                  j                  z  |dt               z  d             |j                  rh|j                         | j                  j                  v rB|j	                  t        j                  | j                  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.
        varchar   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   z& does not support a database index on z	 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   db_indexlower_limited_data_types)r   field
field_typeerrorss       r   check_field_typez#DatabaseValidation.check_field_type&   s     !!),!!)S1A1A-BS-HMM#;;<<>N>PQ $	 >>j..0DOO4W4WWMM33ZA3 $	 r   )__name__
__module____qualname__r   r   r.   __classcell__)r   s   @r   r   r      s    
4'r   r   N)django.corer   "django.db.backends.base.validationr   django.utils.versionr   r   r	   r   r   <module>r6      s     E 1G/ Gr   