Commit 4d7c072d authored by Lin Jen-Shin's avatar Lin Jen-Shin

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
```
parent e8a439ab
...@@ -134,13 +134,13 @@ RSpec.configure do |config| ...@@ -134,13 +134,13 @@ RSpec.configure do |config|
ActiveRecord::Migrator ActiveRecord::Migrator
.migrate(migrations_paths, previous_migration.version) .migrate(migrations_paths, previous_migration.version)
ActiveRecord::Base.descendants.each(&:reset_column_information) reset_column_in_migration_models
end end
config.after(:example, :migration) do config.after(:example, :migration) do
ActiveRecord::Migrator.migrate(migrations_paths) ActiveRecord::Migrator.migrate(migrations_paths)
ActiveRecord::Base.descendants.each(&:reset_column_information) reset_column_in_migration_models
end end
config.around(:each, :nested_groups) do |example| config.around(:each, :nested_groups) do |example|
......
...@@ -15,6 +15,16 @@ module MigrationsHelpers ...@@ -15,6 +15,16 @@ module MigrationsHelpers
ActiveRecord::Migrator.migrations(migrations_paths) ActiveRecord::Migrator.migrations(migrations_paths)
end 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 def previous_migration
migrations.each_cons(2) do |previous, migration| migrations.each_cons(2) do |previous, migration|
break previous if migration.name == described_class.name break previous if migration.name == described_class.name
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment