Update production storage to write to the Pure blob store

Modify the blob copying script to update the blob service name.

This completes the migration and allows us to (at some point) clean up
local disk and remove the "mirror" service from the config.
This commit is contained in:
Mike Dalessio
2025-06-01 12:45:24 -04:00
parent 6d7fbd2175
commit a43db94a83
3 changed files with 9 additions and 3 deletions
+1 -1
View File
@@ -31,7 +31,7 @@ Rails.application.configure do
# config.action_dispatch.x_sendfile_header = "X-Accel-Redirect" # for NGINX
# Store uploaded files on the local file system (see config/storage.yml for options).
config.active_storage.service = :mirror
config.active_storage.service = :purestorage
# Mount Action Cable outside main process or domain.
# config.action_cable.mount_path = nil
+1
View File
@@ -20,6 +20,7 @@ purestorage:
access_key_id: <%= Rails.application.credentials.dig(:active_storage, :purestorage_service, :access_key_id) %>
secret_access_key: <%= Rails.application.credentials.dig(:active_storage, :purestorage_service, :secret_access_key) %>
# TODO: remove this after we update existing blobs' service names to purestorage.
mirror:
service: Mirror
primary: purestorage
+7 -2
View File
@@ -16,7 +16,10 @@ def migrate(source_service_name, target_service_name)
target_service = ActiveStorage::Blob.services.fetch(target_service_name)
ActiveStorage::Blob.find_each do |blob|
if target_service.exist?(blob.key)
if target_service.name.to_sym == blob.service_name.to_sym
report[:skipped] += 1
putc "-"
elsif target_service.exist?(blob.key)
report[:skipped] += 1
putc "S"
else
@@ -31,7 +34,9 @@ def migrate(source_service_name, target_service_name)
putc "E"
end
end
# blob.update_attribute :service_name, target_service_name
# Update the service name of the blob.
blob.update_column :service_name, target_service_name
end
puts