diff options
author | Sean McGivern <sean@gitlab.com> | 2018-06-19 17:18:15 +0100 |
---|---|---|
committer | Sean McGivern <sean@gitlab.com> | 2018-06-19 17:18:15 +0100 |
commit | eb086a4bfd2495168483a2652571f247e6b768a5 (patch) | |
tree | 43a6153480a44adbc732ae8d3c3ebff7fd8c123f /spec | |
parent | c0f0ccf222a2b8896aeb94b7a50b3923c7684125 (diff) | |
download | gitlab-ce-eb086a4bfd2495168483a2652571f247e6b768a5.tar.gz |
Disallow methods that copy data on large tables
{change_column_type,rename_column}_concurrently both copy data from one column
to another during a migration, which should not be done on GitLab.com. Instead,
we should use background migrations.
Diffstat (limited to 'spec')
-rw-r--r-- | spec/rubocop/cop/migration/update_large_table_spec.rb | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/spec/rubocop/cop/migration/update_large_table_spec.rb b/spec/rubocop/cop/migration/update_large_table_spec.rb index ef724fc8bad..5e08eb4f772 100644 --- a/spec/rubocop/cop/migration/update_large_table_spec.rb +++ b/spec/rubocop/cop/migration/update_large_table_spec.rb @@ -32,6 +32,14 @@ describe RuboCop::Cop::Migration::UpdateLargeTable do include_examples 'large tables', 'add_column_with_default' end + context 'for the change_column_type_concurrently method' do + include_examples 'large tables', 'change_column_type_concurrently' + end + + context 'for the rename_column_concurrently method' do + include_examples 'large tables', 'rename_column_concurrently' + end + context 'for the update_column_in_batches method' do include_examples 'large tables', 'update_column_in_batches' end @@ -60,6 +68,18 @@ describe RuboCop::Cop::Migration::UpdateLargeTable do expect(cop.offenses).to be_empty end + it 'registers no offense for change_column_type_concurrently' do + inspect_source("change_column_type_concurrently :#{table}, :column, default: true") + + expect(cop.offenses).to be_empty + end + + it 'registers no offense for update_column_in_batches' do + inspect_source("rename_column_concurrently :#{table}, :column, default: true") + + expect(cop.offenses).to be_empty + end + it 'registers no offense for update_column_in_batches' do inspect_source("add_column_with_default :#{table}, :column, default: true") |