16
votes

I am trying to migrate a Rails 3 app. I installed Rails v 5.1.5 using RVM. When trying db:migrate, I get the following.

rake aborted! StandardError: An error has occurred, all later migrations canceled:

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

class SorceryCore < ActiveRecord::Migration[4.2]

Here is the Class Definition for 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
Ok, I see that I need to work on the individual migrations.uberdave

3 Answers

43
votes

You have to specify the version in brackets like it says. Have you added any migrations since upgrading?

Example change from:

class SorceryCore < ActiveRecord::Migration

to

class SorceryCore < ActiveRecord::Migration[5.1]

You can add the version to all migrations by running this from your Rails root directory:

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

In my case is that I was using and out-dated version of data_migrate:

bundle update data_migrate
# Using data_migrate 6.3.0 (was 5.3.2)
0
votes

Add your migration version at last Like

class SorceryCore < ActiveRecord::Migration[5.1]

so here [5.1] is your version so add version

if you don't know the version please check your previous migration, may you find there...