Merge pull request #8647 from demarches-simplifiees/US/fix-missing-index

correctif(db): index manquant sur les active_storage_attachements.blob_id -> active_storage_blob.id
This commit is contained in:
mfo 2023-02-16 16:12:23 +01:00 committed by GitHub
commit 1fa9a5895a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 27 additions and 1 deletions

View file

@ -0,0 +1,5 @@
class FixActiveStorageAttachmentMissingFkOnBlobId < ActiveRecord::Migration[6.1]
def change
add_foreign_key :active_storage_attachments, :active_storage_blobs, column: :blob_id, validate: false
end
end

View file

@ -10,7 +10,7 @@
#
# It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema.define(version: 2023_02_07_105539) do
ActiveRecord::Schema.define(version: 2023_02_16_130722) do
# These are extensions that must be enabled in order to support this database
enable_extension "pgcrypto"

View file

@ -0,0 +1,21 @@
namespace :after_party do
desc 'Deployment task: reclean_attachments'
task reclean_attachments: :environment do
puts "Running deploy task 'reclean_attachments'"
invalid_attachments = ActiveStorage::Attachment.where.missing(:blob)
invalid_attachments_count = invalid_attachments.size
if invalid_attachments.any?
invalid_attachments.destroy_all
puts "#{invalid_attachments_count} with blob that doesn't exist have been destroyed"
else
puts "No attachments with blob that doesn't exist found"
end
# Update task as completed. If you remove the line below, the task will
# run with every deploy (or every time you call after_party:run).
AfterParty::TaskRecord
.create version: AfterParty::TaskRecorder.new(__FILE__).timestamp
end
end