summaryrefslogtreecommitdiff
path: root/db/migrate/20161209165216_create_doorkeeper_openid_connect_tables.rb
blob: e63d5927f86b0d927860d0b019169e16e885e111 (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
33
34
35
36
37
class CreateDoorkeeperOpenidConnectTables < ActiveRecord::Migration
  include Gitlab::Database::MigrationHelpers

  DOWNTIME = false

  disable_ddl_transaction!

  def up
    create_table :oauth_openid_requests do |t|
      t.integer :access_grant_id, null: false
      t.string :nonce, null: false
    end

    if Gitlab::Database.postgresql?
      # add foreign key without validation to avoid downtime on PostgreSQL,
      # also see db/post_migrate/20170209140523_validate_foreign_keys_on_oauth_openid_requests.rb
      execute %q{
        ALTER TABLE "oauth_openid_requests"
          ADD CONSTRAINT "fk_oauth_openid_requests_oauth_access_grants_access_grant_id"
          FOREIGN KEY ("access_grant_id")
          REFERENCES "oauth_access_grants" ("id")
          NOT VALID;
      }
    else
      execute %q{
        ALTER TABLE oauth_openid_requests
          ADD CONSTRAINT fk_oauth_openid_requests_oauth_access_grants_access_grant_id
          FOREIGN KEY (access_grant_id)
          REFERENCES oauth_access_grants (id);
      }
    end
  end

  def down
    drop_table :oauth_openid_requests
  end
end