升级 Mongoid
Mongoid 为用户迁移到新版本提供了稳定的升级路径。
版本控制
每个 Mongoid发布都有一个 major.minor.patch
格式的版本号。 从 Mongoid 7.4开始, Mongoid 使用 语义版本控制 (SemVer) ,这通常意味着:
重大更改、启用新功能和删除已弃用功能只能在主要版本中进行。
将使用功能标志添加新功能,必须通过选择加入配置更改来启用功能标志。 这些功能标志可能会添加到主要版本或次要版本中。
功能可能会在主要版本或次要版本中被标记为已弃用,但最早要到下一个主要版本时才会被删除。
补丁版本将仅包含非重大修复和安全更新。
警告
Mongoid 7.3及更早版本不严格遵守 SemVer,即使在次要版本中也可能包含重大更改。 用户在升级到这些版本时应格外小心。
如何升级 Mongoid
升级之前
测试覆盖:确保应用程序在升级后仍然正常运行的最佳进程是在开始升级之前拥有良好的测试覆盖率。
升级 Ruby 和 Rails: 请参阅 “升级 Ruby on Rails” 以了解更多信息
升级 Mongoid
以下概述了我们推荐的升级到新 Mongoid 版本的过程:
单独升级到每个次要版本。
示例,如果您要从 Mongoid 7.4升级到8.1 ,我们建议您按照以下步骤获取每个次要版本的最新补丁版本,例如 首先是7.5 .x,然后是8.0 .x,最后是8.1 .x。
升级之前,请确保已将
load_defaults
设立为当前版本。如果您尚未在当前版本上启用最新行为,则应在升级之前启用。
升级时请仔细查看发布说明。
在新版本上测试您的应用。
您的应用应在新的 Mongoid 版本上“按原样”进行测试并发布,而无需调整
load_defaults
或任何功能标志。确认步骤4稳定后,设立
load_defaults
设置为新版本以启用新功能。 此时还要修复所有弃用警告。您还可以使用功能标志逐项启用新功能。
加载默认值和功能标志
引入功能标志后,它将有一个保留以前(传统)功能的默认值。 目前,我们鼓励用户手动将该标志设置为新值,以尝试新功能。
在下一个主要发布,将翻转该标志的默认值以启用新功能。 此时,该标志本身将被标记为已弃用。 最后,在后续的主要版本发布中,将完全从配置中删除已弃用标志。
添加功能标志是为了方便升级,但并不打算永久支持。
弃用策略
Mongoid 可能会不时弃用特性、功能、方法、常量等。 为此,Mongoid 可能会执行以下一项或多项操作:
在代码注释中将相关代码标记为
@deprecated
。如果使用了已弃用的功能,则添加日志警告。
然后,Mongoid 可能会在下一个主要版本中删除已弃用的功能。
标记为@api private
的方法可以在不弃用的情况下删除,即使此类方法在Ruby中为public
。