Welcome to mirror list, hosted at ThFree Co, Russian Federation.

20230822153124_remove_free_user_cap_email_workers_related_columns.rb « post_migrate « db - gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 3ae0459fcdc7e5c59d1ff0e876f5e9f7917b95d7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# frozen_string_literal: true

class RemoveFreeUserCapEmailWorkersRelatedColumns < Gitlab::Database::Migration[2.1]
  disable_ddl_transaction!

  TABLE_NAME = 'namespace_details'
  OVER_LIMIT_CHECK_COLUMN_NAME = 'next_over_limit_check_at'
  OVER_LIMIT_CHECK_INDEX = 'index_next_over_limit_check_at_asc_order'
  OVER_LIMIT_NOTIFIED_AT_COLUMN_NAME = 'free_user_cap_over_limit_notified_at'
  OVER_LIMIT_NOTIFIED_AT_INDEX = 'index_fuc_over_limit_notified_at'

  def up
    remove_columns TABLE_NAME, OVER_LIMIT_CHECK_COLUMN_NAME, OVER_LIMIT_NOTIFIED_AT_COLUMN_NAME
  end

  def down
    unless column_exists?(TABLE_NAME, OVER_LIMIT_CHECK_COLUMN_NAME)
      add_column TABLE_NAME, OVER_LIMIT_CHECK_COLUMN_NAME, :datetime_with_timezone
    end

    unless column_exists?(TABLE_NAME, OVER_LIMIT_NOTIFIED_AT_COLUMN_NAME)
      add_column TABLE_NAME, OVER_LIMIT_NOTIFIED_AT_COLUMN_NAME, :datetime_with_timezone
    end

    add_concurrent_index TABLE_NAME, OVER_LIMIT_CHECK_COLUMN_NAME, name: OVER_LIMIT_CHECK_INDEX,
      order: { next_over_limit_check_at: 'ASC NULLS FIRST' }
    add_concurrent_index TABLE_NAME, OVER_LIMIT_NOTIFIED_AT_COLUMN_NAME, name: OVER_LIMIT_NOTIFIED_AT_INDEX
  end
end