FIX: Handle duplicates in hotlinked_media migration (#16611)

In the old custom_field-based system, it was possible for a url to be both 'downloaded' and 'broken'. The new table enforces uniqueness, so we need to drop invalid data.
This commit is contained in:
David Taylor 2022-05-03 17:17:27 +01:00 committed by GitHub
parent 96e7c85177
commit bebb4fd111
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -60,6 +60,7 @@ class CreatePostHotlinkedMedia < ActiveRecord::Migration[6.1]
FROM post_custom_fields pcf
JOIN json_array_elements_text(pcf.value::json) url ON true
WHERE name='broken_images'
ON CONFLICT (post_id, md5(url::text)) DO NOTHING
SQL
execute <<~SQL
@ -74,6 +75,7 @@ class CreatePostHotlinkedMedia < ActiveRecord::Migration[6.1]
FROM post_custom_fields pcf
JOIN json_array_elements_text(pcf.value::json) url ON true
WHERE name='large_images'
ON CONFLICT (post_id, md5(url::text)) DO NOTHING
SQL
end
end