Alter execute_alembic_command() to not assume all commands

Alembic 0.7.1 is adding new diff directives add_fk and remove_fk.
The logic in execute_alembic_command() appears to assume all potential
commands are present in METHODS.   This patch adjusts it so that
it checks METHODS first, allowing the tests in neutron.tests.unit.db.test_migration
to pass.  However, if the design here requires that all potential
Alembic commands are handled, then this would not be the fix,
though I recommend that the potential list of Alembic directives
not be hardcoded.

Change-Id: Ib08685be252e1fdb0f10853f8fc9a7e19ac54a94
Closes-Bug: #1397796
This commit is contained in:
Mike Bayer 2014-11-30 22:18:32 -05:00
parent 4bdee18097
commit 6a9d112147
1 changed files with 2 additions and 1 deletions

View File

@ -89,7 +89,8 @@ def execute_alembic_command(command):
# Here methods add_table, drop_index, etc is running. Name of method is
# the first element of the tuple, arguments to this method comes from
# the next element(s).
METHODS[command[0]](*command[1:])
if command[0] in METHODS:
METHODS[command[0]](*command[1:])
else:
# For all commands that changing type, nullable or other parameters
# of the column is used alter_column method from alembic.