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:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user