With the mitaka version of neutron and vpnaas installed:
$ NDBM --subproject neutron-vpnaas upgrade liberty
No handlers could be found for logger "oslo_config.cfg"
INFO [alembic.runtime.migration] Context impl MySQLImpl.
INFO [alembic.runtime.migration] Will assume non-transactional DDL.
Running upgrade (contract) for neutron-vpnaas ...
INFO [alembic.runtime.migration] Context impl MySQLImpl.
INFO [alembic.runtime.migration] Will assume non-transactional DDL.
INFO [alembic.runtime.migration] Running upgrade -> start_neutron_vpnaas, start neutron-vpnaas chain
INFO [alembic.runtime.migration] Running upgrade start_neutron_vpnaas -> 3ea02b2a773e, add_index_tenant_id
INFO [alembic.runtime.migration] Running upgrade 3ea02b2a773e -> kilo, kilo
INFO [alembic.runtime.migration] Running upgrade kilo -> 30018084ed99, Initial no-op Liberty expand rule.
INFO [alembic.runtime.migration] Running upgrade 30018084ed99 -> 24f28869838b, Add fields to VPN service table
INFO [alembic.runtime.migration] Running upgrade kilo -> 56893333aa52, fix identifier map fk
INFO [alembic.runtime.migration] Running upgrade 56893333aa52, 24f28869838b -> 333dfd6afaa2, Populate VPN service table fields
INFO [alembic.runtime.migration] Running upgrade 333dfd6afaa2 -> 2c82e782d734, drop_tenant_id_in_cisco_csr_identifier_map
OK
INFO [alembic.runtime.migration] Context impl MySQLImpl.
INFO [alembic.runtime.migration] Will assume non-transactional DDL.
Traceback (most recent call last):
File "/home/henry/Dev/neutron-vpnaas/.tox/pep8/bin/neutron-db-manage", line 10, in <module>
sys.exit(main())
File "/home/henry/Dev/neutron-vpnaas/.tox/pep8/src/neutron/neutron/db/migration/cli.py", line 744, in main
return_val |= bool(CONF.command.func(config, CONF.command.name))
File "/home/henry/Dev/neutron-vpnaas/.tox/pep8/src/neutron/neutron/db/migration/cli.py", line 218, in do_upgrade
run_sanity_checks(config, revision)
File "/home/henry/Dev/neutron-vpnaas/.tox/pep8/src/neutron/neutron/db/migration/cli.py", line 726, in run_sanity_checks
script_dir.run_env()
File "/home/henry/Dev/neutron-vpnaas/.tox/pep8/local/lib/python2.7/site-packages/alembic/script/base.py", line 397, in run_env
util.load_python_file(self.dir, 'env.py')
File "/home/henry/Dev/neutron-vpnaas/.tox/pep8/local/lib/python2.7/site-packages/alembic/util/pyfiles.py", line 81, in load_python_file
module = load_module_py(module_id, path)
File "/home/henry/Dev/neutron-vpnaas/.tox/pep8/local/lib/python2.7/site-packages/alembic/util/compat.py", line 79, in load_module_py
mod = imp.load_source(module_id, path, fp)
File "/home/henry/Dev/neutron-vpnaas/neutron_vpnaas/db/migration/alembic_migrations/env.py", line 87, in <module>
run_migrations_online()
File "/home/henry/Dev/neutron-vpnaas/neutron_vpnaas/db/migration/alembic_migrations/env.py", line 78, in run_migrations_online
context.run_migrations()
File "<string>", line 8, in run_migrations
File "/home/henry/Dev/neutron-vpnaas/.tox/pep8/local/lib/python2.7/site-packages/alembic/runtime/environment.py", line 797, in run_migrations
self.get_context().run_migrations(**kw)
File "/home/henry/Dev/neutron-vpnaas/.tox/pep8/local/lib/python2.7/site-packages/alembic/runtime/migration.py", line 303, in run_migrations
for step in self._migrations_fn(heads, self):
File "/home/henry/Dev/neutron-vpnaas/.tox/pep8/src/neutron/neutron/db/migration/cli.py", line 717, in check_sanity
revision, rev, implicit_base=True):
File "/home/henry/Dev/neutron-vpnaas/.tox/pep8/local/lib/python2.7/site-packages/alembic/script/revision.py", line 664, in _iterate_revisions
raise RangeNotAncestorError(lower, upper)
alembic.script.revision.RangeNotAncestorError: Revision (u'2c82e782d734',) is not an ancestor of revision 24f28869838b
Note: if liberty is installed, upgrade heads succeeds. Then install mitaka and upgrade heads succeeds. So marking this as low priority for now.