o
    Jh                     @   sj   d Z ddlmZ ddlmZ ddlmZ ddlmZ deedZd	Zd
d ZdddZ	dd Z
dd ZdS )z)
Migrate yoyo's internal table structure
    )datetime)timezone   )v1)v2N)r   r      r   c                 C   s   t | ttk S N)get_current_versionmaxschema_versions)backend r   b/var/www/html/pro-man-master/venv/lib/python3.10/site-packages/yoyo/internalmigrations/__init__.pyneeds_upgrading   s   r   c                 C   s   |du r	t t}n|}t| }|  + ||k r6|d }t| |  |}t| | ||k sW d   dS W d   dS 1 sAw   Y  dS )zb
    Check the currently installed yoyo migrations version and update the
    internal schema
    Nr   )r
   r   r	   transactionupgrademark_schema_version)r   versiondesired_versioncurrent_versionnext_versionr   r   r   r      s   



"r   c                 C   sl   t |  }| j}| j|vrdS ||vrdS | j}| d|d d|| }| d }|tv s4J |S )zG
    Return the currently installed yoyo migrations schema version
    r   r   zSELECT max(r   z) FROM )setlist_tablesversion_tablemigration_tablequote_identifierexecutefetchoner   )r   tablesr   qicursorr   r   r   r   r	   *   s   
r	   c                 C   sH   |t v sJ |tk rdS | d| j d|ttjjddd dS )z7
    Mark the given version as having been applied
    NzINSERT INTO z VALUES (:version, :when))tzinfo)r   when)	r   USE_VERSION_TABLE_FROMr   version_table_quotedr   nowr   utcreplace)r   r   r   r   r   r   =   s   r   r   )__doc__r   r    r   r   r   r#   r   r   r	   r   r   r   r   r   <module>   s    
