summaryrefslogtreecommitdiff
path: root/db/migrate/20190920194925_backfill_releases_table_updated_at_and_add_not_null_constraints_to_timestamps.rb
blob: f8f1c6c231b08331f17df6e8ac525abe9f8e4043 (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
# frozen_string_literal: true

class BackfillReleasesTableUpdatedAtAndAddNotNullConstraintsToTimestamps < ActiveRecord::Migration[5.2]
  include Gitlab::Database::MigrationHelpers

  DOWNTIME = false

  disable_ddl_transaction!

  def up
    change_column_null(:releases, :created_at, false, Time.zone.now)

    update_column_in_batches(:releases, :updated_at, Arel.sql('created_at')) do |table, query|
      query.where(table[:updated_at].eq(nil))
    end

    change_column_null(:releases, :updated_at, false, Time.zone.now)
  end

  def down
    change_column_null(:releases, :updated_at, true)
    change_column_null(:releases, :created_at, true)
  end
end