diff --git a/keeps/overdue_finalize_background_migration.rb b/keeps/overdue_finalize_background_migration.rb index 27375f58f563c2a94e42067323fe8de5f70f7e01..6d03384319a5b1b1126132ea3db5ccf34d0d62c4 100644 --- a/keeps/overdue_finalize_background_migration.rb +++ b/keeps/overdue_finalize_background_migration.rb @@ -272,10 +272,10 @@ def migration_code_in_ee?(file_name) ) end - private - def database_name(migration_record) - migration_record.gitlab_schema.split("_").last + gitlab_schema = migration_record.gitlab_schema + connection = Gitlab::Database.schemas_to_base_models[gitlab_schema].first.connection + Gitlab::Database.db_config_name(connection) end end end diff --git a/spec/keeps/overdue_finalize_background_migration_spec.rb b/spec/keeps/overdue_finalize_background_migration_spec.rb index 722128f566459b4bc5ec63509f02df7d7b103b1f..355ce36f18749c3bfa405072eb92e20ab952768f 100644 --- a/spec/keeps/overdue_finalize_background_migration_spec.rb +++ b/spec/keeps/overdue_finalize_background_migration_spec.rb @@ -96,4 +96,36 @@ end end end + + describe '#database_name' do + let(:migration_record) do + MigrationRecord.new(id: 1, finished_at: "2020-04-01 12:00:01", gitlab_schema: gitlab_schema) + end + + subject(:database_name) { keep.database_name(migration_record) } + + context 'when schema is gitlab_main_cell' do + let(:gitlab_schema) { 'gitlab_main_cell' } + + it 'returns the database name' do + expect(database_name).to eq('main') + end + end + + context 'when schema is gitlab_main' do + let(:gitlab_schema) { 'gitlab_main' } + + it 'returns the database name' do + expect(database_name).to eq('main') + end + end + + context 'when schema is gitlab_ci' do + let(:gitlab_schema) { 'gitlab_ci' } + + it 'returns the database name' do + expect(database_name).to eq('ci') + end + end + end end