diff --git a/files/gitlab-ctl-commands/lib/registry/migrate.rb b/files/gitlab-ctl-commands/lib/registry/migrate.rb
index 6189151ecf9287b8bf6c6b611d5d2a64d625351f_ZmlsZXMvZ2l0bGFiLWN0bC1jb21tYW5kcy9saWIvcmVnaXN0cnkvbWlncmF0ZS5yYg==..fcd524b5ec939d8b4f29edbee1fba0bdbb4e16c9_ZmlsZXMvZ2l0bGFiLWN0bC1jb21tYW5kcy9saWIvcmVnaXN0cnkvbWlncmF0ZS5yYg== 100644
--- a/files/gitlab-ctl-commands/lib/registry/migrate.rb
+++ b/files/gitlab-ctl-commands/lib/registry/migrate.rb
@@ -196,11 +196,11 @@
   end
 
   def self.needs_stop!(options)
-    case options[:subcommand]
-    when 'up', 'down'
-      options[:needs_stop] = true unless options.has_key? :dry_run
-    else
-      options[:needs_stop] = false
-    end
+    options[:needs_stop] =
+      if options[:subcommand] == 'down' && !options.key?(:dry_run)
+        true
+      else
+        false
+      end
   end
 end
diff --git a/spec/chef/gitlab-ctl-commands/lib/registry/migrate_spec.rb b/spec/chef/gitlab-ctl-commands/lib/registry/migrate_spec.rb
index 6189151ecf9287b8bf6c6b611d5d2a64d625351f_c3BlYy9jaGVmL2dpdGxhYi1jdGwtY29tbWFuZHMvbGliL3JlZ2lzdHJ5L21pZ3JhdGVfc3BlYy5yYg==..fcd524b5ec939d8b4f29edbee1fba0bdbb4e16c9_c3BlYy9jaGVmL2dpdGxhYi1jdGwtY29tbWFuZHMvbGliL3JlZ2lzdHJ5L21pZ3JhdGVfc3BlYy5yYg== 100644
--- a/spec/chef/gitlab-ctl-commands/lib/registry/migrate_spec.rb
+++ b/spec/chef/gitlab-ctl-commands/lib/registry/migrate_spec.rb
@@ -44,7 +44,7 @@
 
     shared_examples 'parses dry_run option' do
       it 'parses dry-run correctly' do
-        expected_options = { subcommand: command, dry_run: '-d' }
+        expected_options = { subcommand: command, dry_run: '-d', needs_stop: false }
 
         expect(Migrate.parse_options!(%W(migrate #{command} -d), {})).to eq(expected_options)
       end
@@ -59,7 +59,7 @@
       it_behaves_like 'parses dry_run option'
 
       it 'parses subcommand correctly' do
-        expected_options = { subcommand: 'up', limit: '5', skip_post_deploy: '-s', needs_stop: true }
+        expected_options = { subcommand: 'up', limit: '5', skip_post_deploy: '-s', needs_stop: false }
 
         expect(Migrate.parse_options!(%W(migrate #{command} -s -l 5), {})).to eq(expected_options)
       end