summaryrefslogtreecommitdiff
path: root/lib/gitlab/background_migration/migrate_legacy_artifacts.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/gitlab/background_migration/migrate_legacy_artifacts.rb')
-rw-r--r--lib/gitlab/background_migration/migrate_legacy_artifacts.rb20
1 files changed, 10 insertions, 10 deletions
diff --git a/lib/gitlab/background_migration/migrate_legacy_artifacts.rb b/lib/gitlab/background_migration/migrate_legacy_artifacts.rb
index 3fbe3512be4..c2cd60bf730 100644
--- a/lib/gitlab/background_migration/migrate_legacy_artifacts.rb
+++ b/lib/gitlab/background_migration/migrate_legacy_artifacts.rb
@@ -10,17 +10,17 @@ module Gitlab
METADATA_FILE_TYPE = 2 # equal to Ci::JobArtifact.file_types['metadata']
LEGACY_PATH_FILE_LOCATION = 1 # equal to Ci::JobArtifact.file_location['legacy_path']
- def perform(start_id, stop_id)
+ def perform(id_list)
ActiveRecord::Base.transaction do
- insert_archives(start_id, stop_id)
- insert_metadatas(start_id, stop_id)
- delete_legacy_artifacts(start_id, stop_id)
+ insert_archives(id_list)
+ insert_metadatas(id_list)
+ delete_legacy_artifacts(id_list)
end
end
private
- def insert_archives(start_id, stop_id)
+ def insert_archives(id_list)
ActiveRecord::Base.connection.execute <<-EOF.strip_heredoc
INSERT INTO ci_job_artifacts (
project_id,
@@ -44,7 +44,7 @@ module Gitlab
COALESCE(artifacts_file_store, #{FILE_LOCAL_STORE}),
#{ARCHIVE_FILE_TYPE}
FROM ci_builds
- WHERE id BETWEEN #{start_id.to_i} AND #{stop_id.to_i}
+ WHERE id IN (#{id_list.join(',')})
AND artifacts_file <> ''
AND NOT EXISTS (
SELECT 1 FROM ci_job_artifacts
@@ -53,7 +53,7 @@ module Gitlab
EOF
end
- def insert_metadatas(start_id, stop_id)
+ def insert_metadatas(id_list)
ActiveRecord::Base.connection.execute <<-EOF.strip_heredoc
INSERT INTO ci_job_artifacts (
project_id,
@@ -77,7 +77,7 @@ module Gitlab
COALESCE(artifacts_metadata_store, #{FILE_LOCAL_STORE}),
#{METADATA_FILE_TYPE}
FROM ci_builds
- WHERE id BETWEEN #{start_id.to_i} AND #{stop_id.to_i}
+ WHERE id IN (#{id_list.join(',')})
AND artifacts_file <> '' AND artifacts_metadata <> ''
AND NOT EXISTS (
SELECT 1 FROM ci_job_artifacts
@@ -86,7 +86,7 @@ module Gitlab
EOF
end
- def delete_legacy_artifacts(start_id, stop_id)
+ def delete_legacy_artifacts(id_list)
ActiveRecord::Base.connection.execute <<-EOF.strip_heredoc
UPDATE ci_builds
SET artifacts_file = NULL,
@@ -94,7 +94,7 @@ module Gitlab
artifacts_size = NULL,
artifacts_metadata = NULL,
artifacts_metadata_store = NULL
- WHERE id BETWEEN #{start_id.to_i} AND #{stop_id.to_i}
+ WHERE id IN (#{id_list.join(',')})
AND (artifacts_file <> '' OR artifacts_metadata <> '')
EOF
end