无法运行ActiveRecord迁移

我添加了gemfile:

gem 'activerecord-reputation-system', require: 'reputation_system'

到我的Rails应用程序,以便为模型添加upvote / downvote功能(我正在关注Railscast#364)。 我安装了没有问题的宝石。

我输入'rails g reputation_system'和rake db:migrate,但是rake被中止:

Gem::LoadError: You have already activated rake 12.3.0, but your 
Gemfile requires rake 12.0.0. Prepending `bundle exec` to your command 
may solve this.

我用'bundle exec'试了一下,但耙子又被中止了:

StandardError: An error has occurred, this and all later migrations 
canceled:

Directly inheriting from ActiveRecord::Migration is not supported. 
Please specify the Rails release the migration was written for:

我更新了我的宝石,看看这是不是麻烦,但这没有什么区别。

除了找到某种方法去除耙12.3.0和安装12.0.0之外,我无法想到其他任何事情,但这似乎不合逻辑。

任何帮助将不胜感激,谢谢:-)


在Rails 5中,迁移要求您在迁移文件的顶部指定您正在使用的Rails版本(指定迁移),如错误所述。

这看起来像这样:

class CreateYourModels < ActiveRecord::Migration[5.1]
 ...your migration code
end

括号中的位是您正在使用的Rails版本。

然后尝试运行bundle exec rake db:migrate

附加说明:https://blog.bigbinary.com/2016/03/01/migrations-are-versioned-in-rails-5.html

链接地址: http://www.djcxy.com/p/35999.html

上一篇: Unable to run ActiveRecord Migration

下一篇: protected Rails 4