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