diff options
author | Lin Jen-Shin <godfat@godfat.org> | 2017-08-07 17:11:11 +0800 |
---|---|---|
committer | Lin Jen-Shin <godfat@godfat.org> | 2017-08-07 21:20:26 +0800 |
commit | 4d7c072da3b61d26ef86df0fde096c5f8dad4fc5 (patch) | |
tree | e4e621c00987d2650898227fb553b094ba59f729 | |
parent | e8a439ab68575bea85e46005412a4193f53366d7 (diff) | |
download | gitlab-ce-36052-reset-only-migration-models.tar.gz |
Reset only migration models36052-reset-only-migration-models
So that we could make sure migration tests could run even if
geo is not setup in EE.
This is because we have a model like this:
``` ruby
class Geo::BaseRegistry < ActiveRecord::Base
def self.connection
raise 'Geo secondary database is not configured' unless Gitlab::Geo.geo_database_configured?
super
end
end
```
-rw-r--r-- | spec/spec_helper.rb | 4 | ||||
-rw-r--r-- | spec/support/migrations_helpers.rb | 10 |
2 files changed, 12 insertions, 2 deletions
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 06769b241ad..0ba6ed56314 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -134,13 +134,13 @@ RSpec.configure do |config| ActiveRecord::Migrator .migrate(migrations_paths, previous_migration.version) - ActiveRecord::Base.descendants.each(&:reset_column_information) + reset_column_in_migration_models end config.after(:example, :migration) do ActiveRecord::Migrator.migrate(migrations_paths) - ActiveRecord::Base.descendants.each(&:reset_column_information) + reset_column_in_migration_models end config.around(:each, :nested_groups) do |example| diff --git a/spec/support/migrations_helpers.rb b/spec/support/migrations_helpers.rb index 91fbb4eaf48..aabdad13047 100644 --- a/spec/support/migrations_helpers.rb +++ b/spec/support/migrations_helpers.rb @@ -15,6 +15,16 @@ module MigrationsHelpers ActiveRecord::Migrator.migrations(migrations_paths) end + def reset_column_in_migration_models + described_class.constants.sort.each do |name| + const = described_class.const_get(name) + + if const.is_a?(Class) && const < ActiveRecord::Base + const.reset_column_information + end + end + end + def previous_migration migrations.each_cons(2) do |previous, migration| break previous if migration.name == described_class.name |