o
    If)                     @   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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-xz--x-argTz6Additional arguments consumed by custom env.py scripts)multiplehelpc                 C   s
   | t _dS )zPerform database migrations.N)r   x_arg)r    r   J/home/ubuntu/webapp/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-dz--directoryz4Migration script directory (default is "migrations"))defaultr   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 | ||| dS )z#Creates a new migration repository.N)_init)	directory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      t | ||||||||	 dS )zCreate a new revision file.N)	_revision)	r   messageautogeneratesqlr"   splicebranch_labelversion_pathrev_idr   r   r   r   5   s   r   c	           	   
   C   r#   )zJAutogenerate a new revision file (Alias for
    'revision --autogenerate')N)_migrate)	r   r%   r'   r"   r(   r)   r*   r+   r   r   r   r   r   S   s   r   )r   c                 C      t | | dS )zEdit a revision fileN)_editr   r   r   r   r   r   q      r   zMerge revision message	revisions)nargsc                 C      t | |||| dS )z:Merge two revisions together, creating a new revision fileN)_merge)r   r%   r)   r+   r1   r   r   r   r	   {   s   r	   z--tagz;Arbitrary "tag" name - can be used by custom env.py scriptsc                 C   r4   )zUpgrade to a later versionN)_upgrader   r'   tagr   r   r   r   r   r
         r
   z-1c                 C   r4   )zRevert to a previous versionN)
_downgrader7   r   r   r   r      r9   r   c                 C   r-   )z.Show the revision denoted by the given symbol.N)_showr/   r   r   r   r      r0   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)_history)r   	rev_rangeverboseindicate_currentr   r   r   r      s   r   z--resolve-dependenciesz+Treat dependency versions as down revisionsc                 C   s   t | || dS )z4Show current available heads in the script directoryN)_heads)r   r>   resolve_dependenciesr   r   r   r      s   	r   c                 C   r-   )zShow current branch pointsN)	_branchesr   r>   r   r   r   r      r0   r   c                 C   r-   )z/Display the current revision for each database.N)_currentrC   r   r   r   r      r0   r   z--purgez?Delete the version in the alembic_version table before stampingc                 C   s   t | |||| dS )zP'stamp' the revision table with the given revision; don't run any
    migrationsN)_stamp)r   r'   r8   r   purger   r   r   r      s   r   c                 C   s   t |  dS )z0Check if there are any new operations to migrateN)_check)r   r   r   r   r      s   r   ))clickflaskr   	flask.clir   flask_migrater   r   r   r   r   r$   r   r,   r   r.   r	   r5   r
   r6   r   r:   r   r;   r   r<   r   r@   r   rB   r   rD   r   rE   r   rG   groupoptionr   commandargumentr   r   r   r   <module>   s   




















