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 ```
This commit is contained in:
parent
e8a439ab68
commit
4d7c072da3
|
@ -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|
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue