Remove DB downgrade¶
https://blueprints.launchpad.net/glance/+spec/remove-db-downgrade
SQL Migrations are the accepted method for OpenStack projects to ensure that a given schema is consistent across deployments. Often these migrations include updating of the underlying data as well as modifications to the schema. It is inadvisable to perform a downwards migration in any environment. As the bp[1] has been approved through openstack-specs after Kilo, and many projects, such as Nova, have implemented it, Glance should do it as well.
This spec proposed the work and Glance team would like to give users a cycle to deprecate downgrade in their environments. So we will remove them during Newton. In Mitaka, we’ll add a deprecation warning to the DB downgrade.
Problem description¶
Many migrations in OpenStack include data-manipulation to ensure the data conforms to the new schema; often these data-migrations are difficult or impossible to reverse without significant overhead. Performing a downgrade of the schema with such data manipulation can lead to inconsistent or broken state. The possibility of bad-states, relatively minimal testing, and no demand for support renders a downgrade of the schema an unsafe action.
Proposed change¶
1.Add a deprecation warning in Mitaka[3]. 2.Remove the downgrade script in Newton.
Alternatives¶
Downgrade paths can continue to be supported.
Data model impact¶
None
REST API impact¶
None
Security impact¶
None
Notifications impact¶
None
Other end user impact¶
Users should make a full database backup of their production data before attempting any upgrade[2].
Performance Impact¶
None
Other deployer impact¶
Glance could not be downgrade any more after Newton and it’s still work before it.
Developer impact¶
As the downgrade will be remove in the future.There is no need to write new downgrade script any more.
Implementation¶
Assignee(s)¶
wangxiyuan(wxy)
Reviewers¶
Flavio Percoco(flaper87) Nikhil Komawar(nikhil)
Work Items¶
Add a deprecation warning for users.
Remove CLI script for downgrade.
Remove downgrade migration.
Document change.
Add tests code to check there’s no downgrade any more and avoid deployer to add new downgrade script.
Dependencies¶
None
Testing¶
Write a test to confirm there is no downgrade in Glance any more.
Documentation Impact¶
To show that downgrade is deprecated now and will not be supported after Newton. And to indicate how to roll back the DB after that.
References¶
[1]:http://specs.openstack.org/openstack/openstack-specs/specs/no-downward-sql-migration.html [2]:http://docs.openstack.org/openstack-ops/content/ops_upgrades-roll-back.html [3]:https://bugs.launchpad.net/glance/+bug/1501233