Sha256: cda6cd1cef9f70c21188e2940fc5c70aadc56e242c2e082ffc9313f5cc033c07

Contents?: true

Size: 1.95 KB

Versions: 8

Compression:

Stored size: 1.95 KB

Contents

require "cases/helper"

class PostgresqlExtensionMigrationTest < ActiveRecord::PostgreSQLTestCase
  self.use_transactional_tests = false

  class EnableHstore < ActiveRecord::Migration::Current
    def change
      enable_extension "hstore"
    end
  end

  class DisableHstore < ActiveRecord::Migration::Current
    def change
      disable_extension "hstore"
    end
  end

  def setup
    super

    @connection = ActiveRecord::Base.connection

    unless @connection.supports_extensions?
      return skip("no extension support")
    end

    @old_schema_migration_table_name = ActiveRecord::SchemaMigration.table_name
    @old_table_name_prefix = ActiveRecord::Base.table_name_prefix
    @old_table_name_suffix = ActiveRecord::Base.table_name_suffix

    ActiveRecord::Base.table_name_prefix = "p_"
    ActiveRecord::Base.table_name_suffix = "_s"
    ActiveRecord::SchemaMigration.delete_all rescue nil
    ActiveRecord::SchemaMigration.table_name = "p_schema_migrations_s"
    ActiveRecord::Migration.verbose = false
  end

  def teardown
    ActiveRecord::Base.table_name_prefix = @old_table_name_prefix
    ActiveRecord::Base.table_name_suffix = @old_table_name_suffix
    ActiveRecord::SchemaMigration.delete_all rescue nil
    ActiveRecord::Migration.verbose = true
    ActiveRecord::SchemaMigration.table_name = @old_schema_migration_table_name

    super
  end

  def test_enable_extension_migration_ignores_prefix_and_suffix
    @connection.disable_extension("hstore")

    migrations = [EnableHstore.new(nil, 1)]
    ActiveRecord::Migrator.new(:up, migrations).migrate
    assert @connection.extension_enabled?("hstore"), "extension hstore should be enabled"
  end

  def test_disable_extension_migration_ignores_prefix_and_suffix
    @connection.enable_extension("hstore")

    migrations = [DisableHstore.new(nil, 1)]
    ActiveRecord::Migrator.new(:up, migrations).migrate
    assert_not @connection.extension_enabled?("hstore"), "extension hstore should not be enabled"
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
ibm_db-5.2.0 test/cases/adapters/postgresql/extension_migration_test.rb
ibm_db-5.1.0 test/cases/adapters/postgresql/extension_migration_test.rb
ibm_db-5.0.5 test/cases/adapters/postgresql/extension_migration_test.rb
ibm_db-5.0.4 test/cases/adapters/postgresql/extension_migration_test.rb
ibm_db-5.0.3 test/cases/adapters/postgresql/extension_migration_test.rb
ibm_db-5.0.2 test/cases/adapters/postgresql/extension_migration_test.rb
ibm_db-4.0.0-x86-mingw32 test/cases/adapters/postgresql/extension_migration_test.rb
ibm_db-4.0.0 test/cases/adapters/postgresql/extension_migration_test.rb