Danger: Adds a new Danger check for changing column default
What does this MR do and why?
This MR adds a check that detects usage of change_column_default
in migrations, and adds a comment to the changed lines, indicating the need to explicitly declare this column as changing default. This is needed in order to reduce the chance for incidents like RCA: Stale database schema problem caused by `d... (#427489 - closed).
How to set up and validate locally
-
Locally commit a migration that is using the
change_column_default
helper. Example:# frozen_string_literal: true class Test1 < Gitlab::Database::Migration[2.1] enable_lock_retries! def change change_column_default('ci_builds', 'partition_id', from: 100, to: 101) end end
-
Run
bin/rake danger_local
-
Check the output for the new comment message.
MR acceptance checklist
This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.
-
I have evaluated the MR acceptance checklist for this MR.