o
    {gY+                     @   s  d dl Z d dlmZ d dlmZ d dlmZ d dlmZ	 d dlm
Z d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlm Z! d dlm"Z# e $ e j%ddddde j%dddddedd Z&e&' edd Ze&' e j%ddddde j%d dd!d"e j%d#d$dd%de j%d&dd'd"ed(d) Ze&' e j%ddddde j%d*d+dd,de j%d-dd.d"e j%d/dd0d"e j%d1d2d3de j%d4dd5d"e j%d6dd7de j%d8dd9de j%d:dd;ded<d= Z
e&' e j%ddddde j%d*d+dd,de j%d/dd0d"e j%d1d2d3de j%d4dd5d"e j%d6dd7de j%d8dd9de j%d:dd;de j%ddddded>d? Ze&' e j%ddddde j(d=d2d@edAdB Ze&' e j%ddddde j%d*d+ddCde j%d6dd7de j%d:dd;de j(dDdEdFedGdH Ze&' e j%ddddde j%d/dd0d"e j%dIddJde j%ddddde j(d=d2d@edKdL Ze&' e j%ddddde j%d/dd0d"e j%dIddJde j%ddddde j(d=dMd@edNdO Ze&' e j%ddddde j(d=d2d@edPdQ Ze&' e j%ddddde j%dRdSddTde j%dUdVddWd"e j%dXdYddZd"ed[d\ Ze&' e j%ddddde j%dUdVddWd"e j%d]dd^d"ed_d` Ze&' e j%ddddde j%dUdVddWd"edadb Ze&' e j%ddddde j%dUdVddWd"edcdd Ze&' e j%ddddde j%d/dd0d"e j%dIddJde j%deddfd"e j(d=d2d@edgdh Z e&' e j%dddddedidj Z"dS )k    N)g)with_appcontext)list_templates)init)revision)migrate)edit)merge)upgrade)	downgrade)show)history)heads)branches)current)stamp)checkz-dz--directoryz4Migration script directory (default is "migrations"))defaulthelpz-xz--x-argTz6Additional arguments consumed by custom env.py scripts)multipler   c                 C   s   | t _|t _dS )zPerform database migrations.N)r   	directoryx_arg)r   r    r   S/var/www/html/usg.absolutems/venv/lib/python3.10/site-packages/flask_migrate/cli.pydb   s   
r   c                   C   s
   t   dS )zList available templates.N)_list_templatesr   r   r   r   r   !   s   
r   z	--multidbzSupport multiple databases)is_flagr   z-tz
--templatez/Repository template to use (default is "flask")z	--packagezFWrite empty __init__.py files to the environment and version locationsc                 C      t | ptj||| dS )z#Creates a new migration repository.N)_initr   r   )r   multidbtemplatepackager   r   r   r   (   s   r   z-mz	--messagezRevision messagez--autogeneratezfPopulate revision script with candidate migration operations, based on comparison of database to modelz--sqlz<Don't emit SQL to database - dump to standard output insteadz--headheadzBSpecify head revision or <branchname>@head to base new revision onz--splicez6Allow a non-head revision as the "head" to splice ontoz--branch-labelz3Specify a branch label to apply to the new revisionz--version-pathz2Specify specific path from config for version filez--rev-idz9Specify a hardcoded revision id instead of generating onec	           	   
   C   s"   t | ptj||||||||	 dS )zCreate a new revision file.N)	_revisionr   r   )	r   messageautogeneratesqlr"   splicebranch_labelversion_pathrev_idr   r   r   r   8   s   r   c	           	   
   C   s(   t | ptj||||||||ptj	 dS )zJAutogenerate a new revision file (Alias for
    'revision --autogenerate')N)_migrater   r   r   )	r   r$   r&   r"   r'   r(   r)   r*   r   r   r   r   r   V   s   r   )r   c                 C      t | ptj| dS )zEdit a revision fileN)_editr   r   r   r   r   r   r   r   t      r   zMerge revision message	revisions)nargsc                 C   s   t | ptj|||| dS )z:Merge two revisions together, creating a new revision fileN)_merger   r   )r   r$   r(   r*   r0   r   r   r   r	   ~   s   r	   z--tagz;Arbitrary "tag" name - can be used by custom env.py scriptsc                 C       t | ptj||||ptj dS )zUpgrade to a later versionN)_upgrader   r   r   r   r&   tagr   r   r   r   r   r
          r
   z-1c                 C   r4   )zRevert to a previous versionN)
_downgrader   r   r   r6   r   r   r   r      r8   r   c                 C   r,   )z.Show the revision denoted by the given symbol.N)_showr   r   r.   r   r   r   r      r/   r   z-rz--rev-rangez1Specify a revision range; format is [start]:[end]z-vz	--verbosezUse more verbose outputz-iz--indicate-currentz?Indicate current version (Alembic 0.9.9 or greater is required)c                 C   r   )z.List changeset scripts in chronological order.N)_historyr   r   )r   	rev_rangeverboseindicate_currentr   r   r   r      s   r   z--resolve-dependenciesz+Treat dependency versions as down revisionsc                 C   s   t | ptj|| dS )z4Show current available heads in the script directoryN)_headsr   r   )r   r=   resolve_dependenciesr   r   r   r      s   	r   c                 C   r,   )zShow current branch pointsN)	_branchesr   r   r   r=   r   r   r   r      r/   r   c                 C   r,   )z/Display the current revision for each database.N)_currentr   r   rB   r   r   r   r      r/   r   z--purgez?Delete the version in the alembic_version table before stampingc                 C   s   t | ptj|||| dS )zP'stamp' the revision table with the given revision; don't run any
    migrationsN)_stampr   r   )r   r&   r7   r   purger   r   r   r      s   r   c                 C   s   t | ptj dS )z0Check if there are any new operations to migrateN)_checkr   r   )r   r   r   r   r      s   r   ))clickflaskr   	flask.clir   flask_migrater   r   r   r   r   r#   r   r+   r   r-   r	   r3   r
   r5   r   r9   r   r:   r   r;   r   r?   r   rA   r   rC   r   rD   r   rF   groupoptionr   commandargumentr   r   r   r   <module>   s   





















