31 lines
838 B
Ruby
31 lines
838 B
Ruby
|
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
|