移除数据库降级¶
https://blueprints.launchpad.net/glance/+spec/remove-db-downgrade
SQL 迁移是 OpenStack 项目确保给定 schema 在部署之间保持一致性的常用方法。这些迁移通常包括底层数据的更新以及 schema 的修改。在任何环境中执行向下迁移都是不可取的。由于 bp[1] 在 Kilo 之后已通过 openstack-specs 批准,并且许多项目(例如 Nova)已经实施了它,Glance 也应该这样做。
本规范提出了这项工作,Glance 团队希望给用户一个周期来废弃其环境中的降级功能。因此,我们将在 Newton 中移除它们。在 Mitaka 中,我们将为数据库降级添加弃用警告。
问题描述¶
OpenStack 中的许多迁移包括数据操作,以确保数据符合新的 schema;通常,这些数据迁移很难或不可能在没有显著开销的情况下反转。对包含此类数据操作的 schema 进行降级可能导致不一致或损坏的状态。潜在的错误状态、相对较少的测试以及缺乏支持需求使得 schema 降级成为一项不安全的行动。
提议的变更¶
1. 在 Mitaka 中添加弃用警告[3]。 2. 在 Newton 中移除降级脚本。
备选方案¶
降级路径可以继续支持。
数据模型影响¶
无
REST API 影响¶
无
安全影响¶
无
通知影响¶
无
其他最终用户影响¶
用户在尝试任何升级之前[2],应备份其生产数据的完整数据库。
性能影响¶
无
其他部署者影响¶
在 Newton 之后,Glance 将无法再降级,并且在此之前仍然可以。
开发人员影响¶
由于降级将在未来移除,因此不再需要编写新的降级脚本。
实现¶
负责人¶
wangxiyuan(wxy)
评审人员¶
Flavio Percoco(flaper87) Nikhil Komawar(nikhil)
工作项¶
添加弃用警告给用户。
移除降级的 CLI 脚本。
移除降级迁移。
记录变更。
添加测试代码以检查是否不再存在降级,并避免部署者添加新的降级脚本。
依赖项¶
无
测试¶
编写一个测试来确认 Glance 中不再存在降级。
文档影响¶
为了表明降级现在已被弃用,并且在 Newton 之后将不再支持。并说明如何在之后回滚数据库。
参考资料¶
[1]:https://specs.openstack.org/openstack/openstack-specs/specs/no-downward-sql-migration.html [2]:https://docs.openstack.org/openstack-ops/content/ops_upgrades-roll-back.html [3]:https://bugs.launchpad.net/glance/+bug/1501233