U
    ^g%i                     @   s   d dl Z d dlZd dlmZ d dlmZ d dlmZ ejZeej	 e
dZdd Zdd	 Zed
e  ejd jZdd Zdd Zdd Zdd Ze re  ne  e  dS )    N)
fileConfig)current_app)contextzalembic.envc                	   C   s>   zt jd j W S  ttfk
r8   t jd jj Y S X d S )Nmigrate)r   
extensionsdb
get_engine	TypeErrorAttributeErrorZengine r   r   c/var/www/html/api-medvista/venv/lib/python3.8/site-packages/flask_migrate/templates/aioflask/env.pyr      s    r   c                   C   sH   zt  jjddddW S  tk
rB   tt  jdd Y S X d S )NF)Zhide_password%z%%)r   urlZrender_as_stringreplacer
   strr   r   r   r   get_engine_url   s     r   sqlalchemy.urlr   c                   C   s   t tdrtjd  S tjS )N	metadatas)hasattr	target_dbr   metadatar   r   r   r   get_metadata1   s    

r   c               	   C   s<   t d} tj| t dd t  t  W 5 Q R X dS )aF  Run migrations in 'offline' mode.

    This configures the context with just a URL
    and not an Engine, though an Engine is acceptable
    here as well.  By skipping the Engine creation
    we don't even need a DBAPI to be available.

    Calls to context.execute() here emit the given string to the
    script output.

    r   T)r   target_metadataZliteral_bindsN)configZget_main_optionr   	configurer   begin_transactionrun_migrations)r   r   r   r   run_migrations_offline7   s    
  
r   c              	   C   sb   dd }t jd j}|dd kr*||d< tjf | t d| t  t  W 5 Q R X d S )Nc                 S   s:   t tjddr6|d }|j r6g |d d < td d S )NZautogenerateFr   zNo changes in schema detected.)getattrr   cmd_optsZupgrade_opsZis_emptyloggerinfo)r   revisionZ
directivesscriptr   r   r   process_revision_directivesP   s
    
z6do_run_migrations.<locals>.process_revision_directivesr   r$   )
connectionr   )	r   r   Zconfigure_argsgetr   r   r   r   r   )r%   r$   Z	conf_argsr   r   r   do_run_migrationsL   s    
r'   c               
      s<   t  } |  4 I dH }|tI dH  W 5 Q I dH R X dS )zRun migrations in 'online' mode.

    In this scenario we need to create an Engine
    and associate a connection with the context.

    N)r   connectZrun_syncr'   )Zconnectabler%   r   r   r   run_migrations_onlinee   s    r)   )asynciologginglogging.configr   Zflaskr   alembicr   r   Zconfig_file_name	getLoggerr    r   r   Zset_main_optionr   r   r   r   r   r'   r)   Zis_offline_modeget_event_looprun_until_completer   r   r   r   <module>   s$   

	