Files
nova-specs/specs/juno/implemented/backportable-db-migrations-juno.rst
Michael Still f0b8204072 Re-organize juno specs
As discussed at our nova meetings, reorganize the juno specs into
three directories:

 - proposed: things proposed which weren't approved
 - approved: things we approved but didn't implement
 - implemented: things approved and implemented

The first I suspect is the most controversial. I've done this
because I worry about the case where a future developer wants to
pick up something dropped by a previous developer, but has trouble
finding previous proposed specifications on the topic. Note that
the actual proposed specs for Juno are adding in a later commit.

Change-Id: Idcf55ca37a83d7098dcb7c2971240c4e8fd23dc8
2014-10-07 07:49:59 +11:00

136 lines
3.2 KiB
ReStructuredText

..
This work is licensed under a Creative Commons Attribution 3.0 Unported
License.
http://creativecommons.org/licenses/by/3.0/legalcode
==========================================
Allow DB migration backports to Icehouse
==========================================
https://blueprints.launchpad.net/nova/+spec/backportable-db-migrations-juno
Just as we did at the beginning of the Havana and Icehouse dev cycles, we need
to reserve a range of DB migrations as the first DB change in Juno. This will
allow a range to be used for migration backports to Icehouse if needed.
Problem description
===================
Normally, it is not possible to backport a change that requires a database
migration due to the linear versioned nature of the migrations. For the last
two releases (Havana and Icehouse), we have reserved a set of empty migrations
as placeholders to allow for migration backports if needed.
Proposed change
===============
The proposed change is to reserve 10 migrations for Icehouse backports. These
migrations would be no-ops and would simply result in an increment of the
schema version.
Alternatives
------------
When figuring out ways to allow database migrations, alternatives usually
involve discussion of drastic changes to the way we manage migrations. For
example, it could require moving to a new framework. This proposal works for
our current use of sqlalchemy-migrate. This will also be the third release
we've used this approach, so it's fairly well understood at this point.
Data model impact
-----------------
There's no changes to the data model as a part of this effort. It simply gives
us the ability to backport data model changes to Icehouse.
REST API impact
---------------
None
Security impact
---------------
None
Notifications impact
--------------------
None
Other end user impact
---------------------
None
Performance Impact
------------------
These migrations have minimal cost and can be run against a database without
taking down Nova services.
Other deployer impact
---------------------
This set of changes requires doing database migrations. However, they can be
done without any Nova downtime.
Developer impact
----------------
This must be the first set of migrations merged into Juno, or it doesn't work.
Developers must also be very careful when writing migrations that may be
backported. They must be idempotent. For example, if migration 115 is
backported to 107 in the previous release, someone who has executed the
backported migration must not suffer any trouble when the migration runs again
after an upgrade.
Implementation
==============
Assignee(s)
-----------
Primary assignee:
russellb
Work Items
----------
* Create 10 placeholder migrations.
Dependencies
============
None
Testing
=======
The existing unit tests will cover this. Both the normal devstack based CI
systems, as well as the "turbo-hipster" DB CI system will provide functional
test coverage of these placeholder migrations.
Documentation Impact
====================
None.
References
==========
* https://blueprints.launchpad.net/nova/+spec/backportable-db-migrations-icehouse
* https://blueprints.launchpad.net/nova/+spec/backportable-db-migrations
* http://lists.openstack.org/pipermail/openstack-dev/2013-March/006827.html