I had the very same problem yesterday and found a following solution to work.
I do the following in alembic/env.py
:
# this is the Alembic Config object, which provides
# access to the values within the .ini file in use.
config = context.config
# this will overwrite the ini-file sqlalchemy.url path
# with the path given in the config of the main code
import config as ems_config
config.set_main_option('sqlalchemy.url', ems_config.config.get('sql', 'database'))
ems_config
is an external module that holds my configuration data.
config.set_main_option(...)
essentially overwrites the sqlalchemy.url
key in the [alembic]
section of the alembic.ini
file. In my configuration I simply leave it black.