Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 不支持Rails5直接从ActiveRecord::Migration继承。魔法宝石_Ruby On Rails_Sorcery - Fatal编程技术网

Ruby on rails 不支持Rails5直接从ActiveRecord::Migration继承。魔法宝石

Ruby on rails 不支持Rails5直接从ActiveRecord::Migration继承。魔法宝石,ruby-on-rails,sorcery,Ruby On Rails,Sorcery,我正在尝试迁移Rails 3应用程序。我使用RVM安装了Rails v 5.1.5。 在尝试db:migrate时,我得到以下结果 雷克流产了! StandardError:发生错误,所有后续迁移均已取消: 不支持直接从ActiveRecord::Migration继承。请指定编写迁移的Rails版本: 类SorceryCorefalse t、 字符串:加密的密码 t、 绳子:盐 t、 时间戳:null=>false 结束 添加索引:,:电子邮件,唯一:true 结束 结束 您必须像上面所说的那

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

雷克流产了! StandardError:发生错误,所有后续迁移均已取消:

不支持直接从ActiveRecord::Migration继承。请指定编写迁移的Rails版本:

类SorceryCore 以下是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
class-SorceryCore<
def更换
创建表格:do | t|
t、 字符串:email,:null=>false
t、 字符串:加密的密码
t、 绳子:盐
t、 时间戳:null=>false
结束
添加索引:,:电子邮件,唯一:true
结束
结束

您必须像上面所说的那样在括号中指定版本。升级后是否添加了迁移

示例更改为:

class-SorceryCore

class-SorceryCore

通过从Rails根目录运行以下命令,可以将该版本添加到所有迁移:

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

就我而言,我使用的是过时版本的
数据\u migrate

bundle update data_migrate
# Using data_migrate 6.3.0 (was 5.3.2)

该类在SorceryCore中定义如下。类SorceryCore<那么,如何添加ActiveRecord::Migration[5.1]?我应该在目录结构的哪个位置运行你的grep命令?@ubiquitousDave-ah,我明白了。我认为这是你代码中的一个例子。您是否使用最新版本的
魔法
宝石?看起来他们从
Rails::VERSION::MAJOR
变量定义了
migration\u class\u name
。是这方面的根源。我相信如果您使用的是最新版本的巫术-
gem update sorcery
…假设您的
Gemfile
未锁定到较旧版本,它会工作的。好的,我知道我需要处理单个迁移。成功了!好的,我知道我需要处理单个迁移。