Rails 5 的 ActiveRecord::Migration 中的 [5.0] 是什么意思?

What’s does the [5.0] in Rails 5’s ActiveRecord::Migration mean?

我在 Rails 5 应用程序中创建的迁移已 5.0 传递到方法中:

class CreateVariableKeys < ActiveRecord::Migration[5.0]
  ...
end

我想知道[5.0]是什么意思。

它是 ActiveRecord::Migration 的 class 方法,定义为 here

它允许我们 select 我们希望在 4.25.0 之间使用的迁移版本。该方法抛出一个:

"Unknown migration version ... "

如果将不兼容的版本作为参数传递,则会出错。

ActiveRecord 的生产就绪版本没有该方法,因此它应该在 Rails 5 结束测试版后立即消失。

This blog has more info too

当从 rails 4 移动到 rails 5 时,它似乎在那里,因此您不必升级旧的迁移。(迁移中有一些小的变化 API).