summaryrefslogtreecommitdiff
path: root/db/migrate/20180116193854_create_lfs_file_locks.rb
blob: 23b0c90484b0740b8eea40492d265243ef75d6c3 (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
class CreateLfsFileLocks < ActiveRecord::Migration
  include Gitlab::Database::MigrationHelpers

  DOWNTIME = false

  disable_ddl_transaction!

  def up
    create_table :lfs_file_locks do |t|
      t.references :project, null: false, foreign_key: { on_delete: :cascade }
      t.references :user, null: false, index: true, foreign_key: { on_delete: :cascade }
      t.datetime :created_at, null: false
      t.string :path, limit: 511
    end

    add_index :lfs_file_locks, [:project_id, :path], unique: true
  end

  def down
    if foreign_keys_for(:lfs_file_locks, :project_id).any?
      remove_foreign_key :lfs_file_locks, column: :project_id
    end

    if index_exists?(:lfs_file_locks, [:project_id, :path])
      remove_concurrent_index :lfs_file_locks, [:project_id, :path]
    end

    drop_table :lfs_file_locks
  end
end