@ -36,19 +36,36 @@ def do_check_migration(config, _cmd):
do_alembic_command ( config , ' branches ' )
def do_upgrade_downgrade ( config , cmd ) :
def add_alembic_subparser ( sub , cmd ) :
return sub . add_parser ( cmd , help = getattr ( alembic_cmd , cmd ) . __doc__ )
def do_upgrade ( config , cmd ) :
if not CONF . command . revision and not CONF . command . delta :
raise SystemExit ( ' You must provide a revision or relative delta ' )
revision = CONF . command . revision
revision = CONF . command . revision or ' '
if ' - ' in revision :
raise SystemExit ( _ ( ' Negative relative revision (downgrade) not '
' supported ' ) )
if CONF . command . delta :
sign = ' + ' if CONF . command . name == ' upgrade ' else ' - '
revision = sign + str ( CONF . command . delta )
delta = CONF . command . delta
if delta :
if ' + ' in revision :
raise SystemExit ( _ ( ' Use either --delta or relative revision, '
' not both ' ) )
if delta < 0 :
raise SystemExit ( _ ( ' Negative delta (downgrade) not supported ' ) )
revision = ' %s + %d ' % ( revision , delta )
do_alembic_command ( config , cmd , revision , sql = CONF . command . sql )
def no_downgrade ( config , cmd ) :
raise SystemExit ( _ ( " Downgrade no longer supported " ) )
def do_stamp ( config , cmd ) :
do_alembic_command ( config , cmd ,
CONF . command . revision ,
@ -64,25 +81,30 @@ def do_revision(config, cmd):
def add_command_parsers ( subparsers ) :
for name in [ ' current ' , ' history ' , ' branches ' ] :
parser = subparsers. add_parser ( name )
parser = add_alembic_subparser( subparsers , name )
parser . set_defaults ( func = do_alembic_command )
parser = subparsers . add_parser ( ' check_migration ' )
help_text = ( getattr ( alembic_cmd , ' branches ' ) . __doc__ +
' and validate head file ' )
parser = subparsers . add_parser ( ' check_migration ' , help = help_text )
parser . set_defaults ( func = do_check_migration )
for name in [ ' upgrade ' , ' downgrade ' ] :
parser = subparsers . add_parser ( name )
parser . add_argument ( ' --delta ' , type = int )
parser . add_argument ( ' --sql ' , action = ' store_true ' )
parser . add_argument ( ' revision ' , nargs = ' ? ' )
parser . set_defaults ( func = do_upgrade_downgrade )
parser = add_alembic_subparser ( subparsers , ' upgrade ' )
parser . add_argument ( ' --delta ' , type = int )
parser . add_argument ( ' --sql ' , action = ' store_true ' )
parser . add_argument ( ' revision ' , nargs = ' ? ' )
parser . set_defaults ( func = do_upgrade )
parser = subparsers . add_parser ( ' downgrade ' , help = " (No longer supported) " )
parser . add_argument ( ' None ' , nargs = ' ? ' , help = " Downgrade not supported " )
parser . set_defaults ( func = no_downgrade )
parser = subparsers . add_parser ( ' stamp ' )
parser = add_alembic_subparser( subparsers , ' stamp ' )
parser . add_argument ( ' --sql ' , action = ' store_true ' )
parser . add_argument ( ' revision ' )
parser . set_defaults ( func = do_stamp )
parser = subparsers. add_parser ( ' revision ' )
parser = add_alembic_subparser( subparsers , ' revision ' )
parser . add_argument ( ' -m ' , ' --message ' )
parser . add_argument ( ' --autogenerate ' , action = ' store_true ' )
parser . add_argument ( ' --sql ' , action = ' store_true ' )