Rails5不支持直接从ActiveRecord :: Migration继承。巫术宝石

时间:2018-02-15 20:47:32

标签: ruby-on-rails sorcery

我正在尝试迁移Rails 3应用。我使用RVM安装了Rails v 5.1.5。 尝试db:migrate时,我得到以下内容。

耙子流产了! StandardError:发生错误,所有以后的迁移都被取消:

不支持直接继承ActiveRecord :: Migration。请指定为以下内容编写的Rails版本:

类SorceryCore< ActiveRecord的::迁移[4.2]

以下是Sorcerycore的类定义:

class SorceryCore < <%= migration_class_name %>        


  def change
    create_table :<%= model_class_name.tableize %> do |t|
      t.string :email,            :null => false
      t.string :crypted_password
      t.string :salt

      t.timestamps                :null => false
    end

    add_index :<%= model_class_name.tableize %>, :email, unique: true
  end
end

3 个答案:

答案 0 :(得分:4)

你必须像括号那样在括号中指定版本。您是否在升级后添加了任何迁移?

示例更改:

class SorceryCore < ActiveRecord::Migration

class SorceryCore < ActiveRecord::Migration[5.1]

您可以通过运行以下命令将版本添加到所有迁移中:

grep -rl "ActiveRecord::Migration" db | xargs sed -i "" "s/ActiveRecord::Migration/ActiveRecord::Migration[5.1]/g"

答案 1 :(得分:0)

在我的情况下,我使用的是data_migrate的过时版本:

bundle update data_migrate
# Using data_migrate 6.3.0 (was 5.3.2)

答案 2 :(得分:0)

最后添加你的迁移版本Like

class SorceryCore < ActiveRecord::Migration[5.1]

所以这里 [5.1] 是你的版本所以添加版本

如果您不知道版本,请检查您之前的迁移,是否可以找到...