class ActiveRecord::Migration::CompatibilityTest

Attributes

connection[R]

Public Instance Methods

migrate(x) click to toggle source
# File activerecord/test/cases/migration/compatibility_test.rb, line 35
def migrate(x)
  remove_index :testings, :foo
end
setup() click to toggle source
Calls superclass method
# File activerecord/test/cases/migration/compatibility_test.rb, line 12
def setup
  super
  @connection = ActiveRecord::Base.connection
  @verbose_was = ActiveRecord::Migration.verbose
  ActiveRecord::Migration.verbose = false

  connection.create_table :testings do |t|
    t.column :foo, :string, limit: 100
    t.column :bar, :string, limit: 100
  end
end
test_legacy_migrations_raises_exception_when_inherited() click to toggle source
# File activerecord/test/cases/migration/compatibility_test.rb, line 123
def test_legacy_migrations_raises_exception_when_inherited
  e = assert_raises(StandardError) do
    class_eval("class LegacyMigration < ActiveRecord::Migration; end")
  end
  assert_match(/LegacyMigration < ActiveRecord::Migration\[4\.2\]/, e.message)
end
test_migration_does_remove_unnamed_index() click to toggle source
# File activerecord/test/cases/migration/compatibility_test.rb, line 45
def test_migration_does_remove_unnamed_index
  connection.add_index :testings, :bar

  migration = Class.new(ActiveRecord::Migration[4.2]) {
    def version; 101 end
    def migrate(x)
      remove_index :testings, :bar
    end
  }.new

  assert connection.index_exists?(:testings, :bar)
  ActiveRecord::Migrator.new(:up, [migration]).migrate
  assert_not connection.index_exists?(:testings, :bar)
end
test_migration_doesnt_remove_named_index() click to toggle source
# File activerecord/test/cases/migration/compatibility_test.rb, line 30
def test_migration_doesnt_remove_named_index
  connection.add_index :testings, :foo, name: "custom_index_name"

  migration = Class.new(ActiveRecord::Migration[4.2]) {
    def version; 101 end
    def migrate(x)
      remove_index :testings, :foo
    end
  }.new

  assert connection.index_exists?(:testings, :foo, name: "custom_index_name")
  assert_raise(StandardError) { ActiveRecord::Migrator.new(:up, [migration]).migrate }
  assert connection.index_exists?(:testings, :foo, name: "custom_index_name")
end
test_references_does_not_add_index_by_default() click to toggle source
# File activerecord/test/cases/migration/compatibility_test.rb, line 60
def test_references_does_not_add_index_by_default
  migration = Class.new(ActiveRecord::Migration[4.2]) {
    def migrate(x)
      create_table :more_testings do |t|
        t.references :foo
        t.belongs_to :bar, index: false
      end
    end
  }.new

  ActiveRecord::Migrator.new(:up, [migration]).migrate

  assert_not connection.index_exists?(:more_testings, :foo_id)
  assert_not connection.index_exists?(:more_testings, :bar_id)
ensure
  connection.drop_table :more_testings rescue nil
end
test_timestamps_have_null_constraints_if_not_present_in_migration_for_adding_timestamps_to_existing_table() click to toggle source
# File activerecord/test/cases/migration/compatibility_test.rb, line 110
def test_timestamps_have_null_constraints_if_not_present_in_migration_for_adding_timestamps_to_existing_table
  migration = Class.new(ActiveRecord::Migration[4.2]) {
    def migrate(x)
      add_timestamps :testings
    end
  }.new

  ActiveRecord::Migrator.new(:up, [migration]).migrate

  assert connection.columns(:testings).find { |c| c.name == "created_at" }.null
  assert connection.columns(:testings).find { |c| c.name == "updated_at" }.null
end
test_timestamps_have_null_constraints_if_not_present_in_migration_of_change_table() click to toggle source
# File activerecord/test/cases/migration/compatibility_test.rb, line 95
def test_timestamps_have_null_constraints_if_not_present_in_migration_of_change_table
  migration = Class.new(ActiveRecord::Migration[4.2]) {
    def migrate(x)
      change_table :testings do |t|
        t.timestamps
      end
    end
  }.new

  ActiveRecord::Migrator.new(:up, [migration]).migrate

  assert connection.columns(:testings).find { |c| c.name == "created_at" }.null
  assert connection.columns(:testings).find { |c| c.name == "updated_at" }.null
end
test_timestamps_have_null_constraints_if_not_present_in_migration_of_create_table() click to toggle source
# File activerecord/test/cases/migration/compatibility_test.rb, line 78
def test_timestamps_have_null_constraints_if_not_present_in_migration_of_create_table
  migration = Class.new(ActiveRecord::Migration[4.2]) {
    def migrate(x)
      create_table :more_testings do |t|
        t.timestamps
      end
    end
  }.new

  ActiveRecord::Migrator.new(:up, [migration]).migrate

  assert connection.columns(:more_testings).find { |c| c.name == "created_at" }.null
  assert connection.columns(:more_testings).find { |c| c.name == "updated_at" }.null
ensure
  connection.drop_table :more_testings rescue nil
end
version() click to toggle source
# File activerecord/test/cases/migration/compatibility_test.rb, line 34
def version; 101 end