Skip to content
Snippets Groups Projects
Commit c76f8f3e authored by Grzegorz Bizon's avatar Grzegorz Bizon
Browse files

Make it possible to provide schema version in tests

parent 71564974
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -210,7 +210,11 @@ describe Gitlab::BackgroundMigration::MigrateEventsToPushEventPayloads::Event do
end
end
 
describe Gitlab::BackgroundMigration::MigrateEventsToPushEventPayloads do
##
# The background migration relies on a temporary table, hence we're migrating
# to a specific version of the database where said table is still present.
#
describe Gitlab::BackgroundMigration::MigrateEventsToPushEventPayloads, :migration, schema: 20170608152748 do
let(:migration) { described_class.new }
let(:project) { create(:project_empty_repo) }
let(:author) { create(:user) }
Loading
Loading
@@ -229,21 +233,6 @@ describe Gitlab::BackgroundMigration::MigrateEventsToPushEventPayloads do
)
end
 
# The background migration relies on a temporary table, hence we're migrating
# to a specific version of the database where said table is still present.
before :all do
ActiveRecord::Migration.verbose = false
ActiveRecord::Migrator
.migrate(ActiveRecord::Migrator.migrations_paths, 20170608152748)
end
after :all do
ActiveRecord::Migrator.migrate(ActiveRecord::Migrator.migrations_paths)
ActiveRecord::Migration.verbose = true
end
describe '#perform' do
it 'returns if data should not be migrated' do
allow(migration).to receive(:migrate?).and_return(false)
Loading
Loading
Loading
Loading
@@ -132,17 +132,12 @@ RSpec.configure do |config|
Sidekiq.redis(&:flushall)
end
 
config.before(:context, :migration) do |example|
ActiveRecord::Migrator
.migrate(migrations_paths, previous_migration.version)
reset_column_in_migration_models
config.before(:context, :migration) do
schema_migrate_down!
end
 
config.after(:context, :migration) do
ActiveRecord::Migrator.migrate(migrations_paths)
reset_column_in_migration_models
schema_migrate_up!
end
 
config.around(:each, :nested_groups) do |example|
Loading
Loading
Loading
Loading
@@ -31,6 +31,21 @@ module MigrationsHelpers
end
end
 
def migration_schema_version
self.class.metadata[:schema] || previous_migration.version
end
def schema_migrate_down!
ActiveRecord::Migrator
.migrate(migrations_paths, migration_schema_version)
reset_column_in_migration_models
end
def schema_migrate_up!
ActiveRecord::Migrator.migrate(migrations_paths)
reset_column_in_migration_models
end
def migrate!
ActiveRecord::Migrator.up(migrations_paths) do |migration|
migration.name == described_class.name
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment