【问题标题】:error when use "rake db:migrate" on Ubuntu 16.04.5 LTS在 Ubuntu 16.04.5 LTS 上使用“rake db:migrate”时出错
【发布时间】:2019-04-17 17:23:00
【问题描述】:

我正在使用“rake db:migrate”并收到以下错误消息: 请帮我解决这个问题:

# rake db:migrate rake aborted! 
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:
  class CreateUsers < ActiveRecord::Migration[4.2] 
/var/lib/gems/2.3.0/gems/activerecord-5.2.1/lib/active_record/migration.rb:528:in `inherited' 
/root/genieacs-gui/db/migrate/20160202145722_create_users.rb:1:in `<top (required)>' 
/var/lib/gems/2.3.0/gems/activesupport-5.2.1/lib/active_support/dependencies.rb:287:in `require' 
/var/lib/gems/2.3.0/gems/activesupport-5.2.1/lib/active_support/dependencies.rb:287:in `block in require' 
/var/lib/gems/2.3.0/gems/activesupport-5.2.1/lib/active_support/dependencies.rb:253:in `load_dependency' 
/var/lib/gems/2.3.0/gems/activesupport-5.2.1/lib/active_support/dependencies.rb:287:in `require' 
/var/lib/gems/2.3.0/gems/activerecord-5.2.1/lib/active_record/migration.rb:986:in `load_migration' 
/var/lib/gems/2.3.0/gems/activerecord-5.2.1/lib/active_record/migration.rb:982:in `migration' 
/var/lib/gems/2.3.0/gems/activerecord-5.2.1/lib/active_record/migration.rb:977:in `disable_ddl_transaction' 
/var/lib/gems/2.3.0/gems/activerecord-5.2.1/lib/active_record/migration.rb:1350:in `use_transaction?' 
/var/lib/gems/2.3.0/gems/activerecord-5.2.1/lib/active_record/migration.rb:1342:in `ddl_transaction' 
/var/lib/gems/2.3.0/gems/activerecord-5.2.1/lib/active_record/migration.rb:1291:in `execute_migration_in_transaction' 
/var/lib/gems/2.3.0/gems/activerecord-5.2.1/lib/active_record/migration.rb:1263:in `block in migrate_without_lock' 
/var/lib/gems/2.3.0/gems/activerecord-5.2.1/lib/active_record/migration.rb:1262:in `each' 
/var/lib/gems/2.3.0/gems/activerecord-5.2.1/lib/active_record/migration.rb:1262:in `migrate_without_lock' 
/var/lib/gems/2.3.0/gems/activerecord-5.2.1/lib/active_record/migration.rb:1212:in `migrate' 
/var/lib/gems/2.3.0/gems/activerecord-5.2.1/lib/active_record/migration.rb:1036:in `up' 
/var/lib/gems/2.3.0/gems/activerecord-5.2.1/lib/active_record/migration.rb:1011:in `migrate' 
/var/lib/gems/2.3.0/gems/activerecord-5.2.1/lib/active_record/tasks/database_tasks.rb:172:in `migrate' 
/var/lib/gems/2.3.0/gems/activerecord-5.2.1/lib/active_record/railties/databases.rake:60:in `block (2 levels) in <top (required)>' 
/var/lib/gems/2.3.0/gems/rake-12.3.1/exe/rake:27:in `<top (required)>'
#...
Tasks: TOP => db:migrate

【问题讨论】:

  • 错误的第一行解释了要做什么

标签: ruby-on-rails ruby rubygems rake-task dbmigrate


【解决方案1】:

db/migrate 目录中的迁移应该都继承自 ActiveRecord::Migration[5.2],而不是 ActiveRecord::Migration

【讨论】:

  • 嗨,kevcha,我可以通过下面的命令进行编辑吗? grep -rl "ActiveRecord::Migration$" 数据库 | xargs sed -i 's/ActiveRecord::Migration/ActiveRecord::Migration[5.2]/g'
猜你喜欢
  • 2017-03-01
  • 2012-09-06
  • 2013-03-02
  • 2018-10-06
  • 2012-04-08
  • 2018-02-05
  • 1970-01-01
  • 2019-06-25
相关资源
最近更新 更多