Online Schema Migrations
This specification discusses the issue of database schema migrations which
may proceed while allowing both the previous and the updated version of the
Neutron database API to run against that schema at the same time. By using
separate "expand" and "contract" workflows, new constructs may be added
to the schema while the old version of the application continues to run.
This is (the simplest) part of a larger approach which is to allow a Neutron application to
be upgraded to a new version without incurring downtime while the database
schema is migrated.
Blueprint information
- Status:
- Complete
- Approver:
- Kyle Mestery
- Priority:
- High
- Drafter:
- Mike Bayer
- Direction:
- Approved
- Assignee:
- Ihar Hrachyshka
- Definition:
- Approved
- Series goal:
- Accepted for liberty
- Implementation:
- Implemented
- Milestone target:
- 7.0.0
- Started by
- Kyle Mestery
- Completed by
- Armando Migliaccio
Related branches
Related bugs
Sprints
Whiteboard
August-26 (mestery): Ihar, what is the status of this BP? Is it implemented yet?
August-26 (ihrachyshka): it's almost there. the only piece that should be a blocker for the spec is: https:/
Sept 1 (armax): change 216313 is merged. Unless there's some bug lurking like (bug 1490767), this looks like it's complete.
UPD: I forgot that there is also this cleanup that we should get in L: https:/
Gerrit topic: https:/
Addressed by: https:/
Propose scripted online schema migrations
Addressed by: https:/
Ease debugging alembic by passing proper scripts path in alembic.ini
Addressed by: https:/
WIP: [neutron-db-manage] generate new revisions in split trees
Gerrit topic: https:/
Addressed by: https:/
migrations: rearrange the tree to support split migration phases
Addressed by: https:/
Revert "VPNaaS: Temporarily disable check_migration"
Addressed by: https:/
[neutron-
Addressed by: https:/
Migrate to multi branch directory structure
Addressed by: https:/
ensure_dir: move under neutron.
Addressed by: https:/
script.py.mako: added license text, removed downgrade section
Gerrit topic: https:/
Addressed by: https:/
script.py.mako: update to latest standards
Addressed by: https:/
switch to multi branch migration tree for liberty
Addressed by: https:/
[neutron-
Addressed by: https:/
[neutron-
Addressed by: https:/
Killed existing downgrade rules in migration scripts
Addressed by: https:/
Killed existing downgrade rules in migration scripts
Gerrit topic: https:/
Addressed by: https:/
script.py.mako: added license header and missing branch_labels
Addressed by: https:/
Killed existing downgrade rules in migration scripts
Gerrit topic: https:/
Addressed by: https:/
Merge remote-tracking branch 'origin/master' into merge-branch
Gerrit topic: https:/
Addressed by: https:/
Implement expand/contract autogenerate extension
Addressed by: https:/
Add non-model index names to autogen exclude filters
Addressed by: https:/
Implement expand/contract autogenerate extension
Addressed by: https:/
Add non-model index names to autogen exclude filters
Addressed by: https:/
neutron-
Addressed by: https:/
Dropped release name from migration branch labels
Addressed by: https:/
[neutron-
Addressed by: https:/
Adopt the migration chaining and branch names from neutron
Addressed by: https:/
Adopt the migration chaining and branch names from neutron
Addressed by: https:/
Adopt the migration chaining and branch names from neutron
Gerrit topic: https:/
Addressed by: https:/
Merge remote-tracking branch 'origin/master' into merge-branch
Gerrit topic: https:/
Addressed by: https:/
Merge remote-tracking branch 'origin/master' into pecan
Gerrit topic: https:/
Addressed by: https:/
[neutron-
Gerrit topic: https:/
Addressed by: https:/
Add test to check that correct functions is used in expand/contract
Gerrit topic: https:/
Addressed by: https:/
Merge remote-tracking branch 'origin/master' into merge-pecan-
Gerrit topic: https:/
Addressed by: https:/
Merge remote-tracking branch 'origin/master' into walnut