diff --git a/config/environments/production.rb b/config/environments/production.rb index f960c0e81..73f7f6f1b 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -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 diff --git a/config/storage.yml b/config/storage.yml index 38ac38be7..2b062460e 100644 --- a/config/storage.yml +++ b/config/storage.yml @@ -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 diff --git a/script/copy-blobs-to-pure.rb b/script/copy-blobs-to-pure.rb index 01b51e66e..ae906d4ea 100755 --- a/script/copy-blobs-to-pure.rb +++ b/script/copy-blobs-to-pure.rb @@ -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