summaryrefslogtreecommitdiff
path: root/db/migrate/20180214155405_create_clusters_applications_runners.rb
blob: f611fefbb0de8b603503fcdd1e04d24337f45d81 (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
30
31
32
class CreateClustersApplicationsRunners < ActiveRecord::Migration[4.2]
  include Gitlab::Database::MigrationHelpers

  DOWNTIME = false

  disable_ddl_transaction!

  def up
    create_table :clusters_applications_runners do |t|
      t.references :cluster, null: false, foreign_key: { on_delete: :cascade }
      t.references :runner, references: :ci_runners
      t.index :runner_id
      t.index :cluster_id, unique: true
      t.integer :status, null: false
      t.timestamps_with_timezone null: false
      t.string :version, null: false # rubocop:disable Migration/AddLimitToStringColumns
      t.text :status_reason
    end

    add_concurrent_foreign_key :clusters_applications_runners, :ci_runners,
      column: :runner_id,
      on_delete: :nullify
  end

  def down
    if foreign_keys_for(:clusters_applications_runners, :runner_id).any?
      remove_foreign_key :clusters_applications_runners, column: :runner_id
    end

    drop_table :clusters_applications_runners
  end
end