summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorMichael Kozono <mkozono@gmail.com>2017-11-15 05:19:07 -0800
committerMichael Kozono <mkozono@gmail.com>2017-12-01 15:26:41 -0800
commit87529ce5823036d4b9dd9ca412643befc8e490c3 (patch)
treef6c93c6f7f46eb46a5548a5dc90a56e267ff3492 /lib
parent10c660be007406533e48d5e3c6485ecf210e051b (diff)
downloadgitlab-ce-87529ce5823036d4b9dd9ca412643befc8e490c3.tar.gz
Move temp table creation into the prepare job
* Hopefully fixes spec failures in which the table doesn’t exist * Decouples the background migration from the post-deploy migration, e.g. we could easily run it again even though the table is dropped when finished.
Diffstat (limited to 'lib')
-rw-r--r--lib/gitlab/background_migration/prepare_untracked_uploads.rb21
1 files changed, 17 insertions, 4 deletions
diff --git a/lib/gitlab/background_migration/prepare_untracked_uploads.rb b/lib/gitlab/background_migration/prepare_untracked_uploads.rb
index 8772092da64..e0c1daaccf7 100644
--- a/lib/gitlab/background_migration/prepare_untracked_uploads.rb
+++ b/lib/gitlab/background_migration/prepare_untracked_uploads.rb
@@ -19,16 +19,29 @@ module Gitlab
end
def perform
- return unless migrate?
-
+ ensure_temporary_tracking_table_exists
store_untracked_file_paths
schedule_populate_untracked_uploads_jobs
end
private
- def migrate?
- UntrackedFile.table_exists?
+ def ensure_temporary_tracking_table_exists
+ unless UntrackedFile.connection.table_exists?(:untracked_files_for_uploads)
+ UntrackedFile.connection.create_table :untracked_files_for_uploads do |t|
+ t.string :path, limit: 600, null: false
+ t.boolean :tracked, default: false, null: false
+ t.timestamps_with_timezone null: false
+ end
+ end
+
+ unless UntrackedFile.connection.index_exists?(:untracked_files_for_uploads, :path)
+ UntrackedFile.connection.add_index :untracked_files_for_uploads, :path, unique: true
+ end
+
+ unless UntrackedFile.connection.index_exists?(:untracked_files_for_uploads, :tracked)
+ UntrackedFile.connection.add_index :untracked_files_for_uploads, :tracked
+ end
end
def store_untracked_file_paths