Use versioned migrations when possible

Rails 5 deprecates inheriting directly from `ActiveRecord::Migration` in
favor of inheriting from `ActiveRecord::Migration[5.0]` where `5.0` is
the `major.minor` version of Rails that the migration was originally
written to support.

h/t to b0ce189c69.
This commit is contained in:
Lucas Mazza
2016-03-07 11:34:19 -03:00
parent 9ece7da447
commit 353b14f473
3 changed files with 10 additions and 4 deletions

View File

@@ -11,9 +11,9 @@ module ActiveRecord
def copy_devise_migration
if (behavior == :invoke && model_exists?) || (behavior == :revoke && migration_exists?(table_name))
migration_template "migration_existing.rb", "db/migrate/add_devise_to_#{table_name}.rb"
migration_template "migration_existing.rb", "db/migrate/add_devise_to_#{table_name}.rb", migration_version: migration_version
else
migration_template "migration.rb", "db/migrate/devise_create_#{table_name}.rb"
migration_template "migration.rb", "db/migrate/devise_create_#{table_name}.rb", migration_version: migration_version
end
end
@@ -86,6 +86,12 @@ RUBY
config = ActiveRecord::Base.configurations[Rails.env]
config && config['adapter'] == 'postgresql'
end
def migration_version
if rails5?
"[#{Rails::VERSION::MAJOR}.#{Rails::VERSION::MINOR}]"
end
end
end
end
end

View File

@@ -1,4 +1,4 @@
class DeviseCreate<%= table_name.camelize %> < ActiveRecord::Migration
class DeviseCreate<%= table_name.camelize %> < ActiveRecord::Migration<%= migration_version %>
def change
create_table :<%= table_name %> do |t|
<%= migration_data -%>

View File

@@ -1,4 +1,4 @@
class AddDeviseTo<%= table_name.camelize %> < ActiveRecord::Migration
class AddDeviseTo<%= table_name.camelize %> < ActiveRecord::Migration<%= migration_version %>
def self.up
change_table :<%= table_name %> do |t|
<%= migration_data -%>