diff options
author | Rubén Dávila <ruben@gitlab.com> | 2018-02-07 16:00:53 +0300 |
---|---|---|
committer | Rubén Dávila <ruben@gitlab.com> | 2018-02-07 17:04:00 +0300 |
commit | bed948321173b49564f39837e97212ee4dd96e03 (patch) | |
tree | 72e6faa9f68378f997f876cf9550561bad546028 /db/migrate/20180116193854_create_lfs_file_locks.rb | |
parent | ead97c55eac773444dee547a934112aa282c2e2e (diff) |
Backport of LFS File Locking API
Diffstat (limited to 'db/migrate/20180116193854_create_lfs_file_locks.rb')
-rw-r--r-- | db/migrate/20180116193854_create_lfs_file_locks.rb | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/db/migrate/20180116193854_create_lfs_file_locks.rb b/db/migrate/20180116193854_create_lfs_file_locks.rb new file mode 100644 index 00000000000..23b0c90484b --- /dev/null +++ b/db/migrate/20180116193854_create_lfs_file_locks.rb @@ -0,0 +1,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 |