30 lines
880 B
Ruby
30 lines
880 B
Ruby
class CreateLfsFileLocks < ActiveRecord::Migration[4.2]
|
|
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 # rubocop:disable Migration/Datetime
|
|
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
|