31 lines
932 B
Ruby
31 lines
932 B
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
class RemoveLeftoverCiJobArtifactDeletions < Gitlab::Database::Migration[1.0]
|
||
|
disable_ddl_transaction!
|
||
|
|
||
|
def up
|
||
|
# Delete all pending record deletions in the public.ci_job_artifacts until
|
||
|
# there are no more rows left.
|
||
|
loop do
|
||
|
result = execute <<~SQL
|
||
|
DELETE FROM "loose_foreign_keys_deleted_records"
|
||
|
WHERE
|
||
|
("loose_foreign_keys_deleted_records"."partition", "loose_foreign_keys_deleted_records"."id") IN (
|
||
|
SELECT "loose_foreign_keys_deleted_records"."partition", "loose_foreign_keys_deleted_records"."id"
|
||
|
FROM "loose_foreign_keys_deleted_records"
|
||
|
WHERE
|
||
|
"loose_foreign_keys_deleted_records"."fully_qualified_table_name" = 'public.ci_job_artifacts' AND
|
||
|
"loose_foreign_keys_deleted_records"."status" = 1
|
||
|
LIMIT 100
|
||
|
)
|
||
|
SQL
|
||
|
|
||
|
break if result.cmd_tuples == 0
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def down
|
||
|
# no-op
|
||
|
end
|
||
|
end
|