In some use cases, notably testing, it can be handy to do database
migrations when the web service starts up. This changes adds that
functionality, controlled by a [placement_database]/sync_on_startup
option that defaults to False.
When True, `migration.upgrade('head')` will be called before the
placement application is made available to the wsgi server. Alembic
protects us against concurrency issues and prevents re-doing already
done migrations.
This means that it is possible, with the help of oslo.config>=6.7.0
to do something like this:
OS_PLACEMENT_DATABASE__CONNECTION=sqlite:// \
OS_PLACEMENT_DATABASE__SYNC_ON_STARTUP=True \
OS_API__AUTH_STRATEGY=noauth2 \
.tox/py36/bin/placement-api
and have a ready to go placement api using an in-RAM sql database.
A reno is added.
Change-Id: Ie43a69be8b75250d9deca6a911eda7b722ef8648