Class: Hyrax::DataMaintenance
- Inherits:
-
Object
- Object
- Hyrax::DataMaintenance
- Defined in:
- app/utils/hyrax/data_maintenance.rb
Overview
WARNING: DO NOT USE IN PRODUCTION! The methods in this class are destructive. Data can not be recovered.
These methods created for use in rake tasks and db/seeds.rb They can be used to:
-
clear repository metadata and related data and files
-
clear temporary files
-
clear logs
Instance Attribute Summary collapse
-
#allow_destruction_in_production ⇒ Object
Returns the value of attribute allow_destruction_in_production.
-
#logger ⇒ Object
Returns the value of attribute logger.
Instance Method Summary collapse
- #destroy_log_files ⇒ Object
-
#destroy_repository_metadata_and_related_data ⇒ Object
Clear repository metadata and related data * clear repository metadata from the datastore (e.g. Fedora, Postgres) and from Solr * clear targeted application data that is tightly coupled to repository metadata * delete files that are tightly coupled to repository metadata.
- #destroy_tmp_files ⇒ Object
-
#initialize(logger: Logger.new(STDOUT), allow_destruction_in_production: false) ⇒ DataMaintenance
constructor
A new instance of DataMaintenance.
Constructor Details
#initialize(logger: Logger.new(STDOUT), allow_destruction_in_production: false) ⇒ DataMaintenance
Returns a new instance of DataMaintenance.
16 17 18 19 20 |
# File 'app/utils/hyrax/data_maintenance.rb', line 16 def initialize(logger: Logger.new(STDOUT), allow_destruction_in_production: false) raise("Destruction of data is not for use in production!") if Rails.env.production? && !allow_destruction_in_production @logger = logger @allow_destruction_in_production = allow_destruction_in_production end |
Instance Attribute Details
#allow_destruction_in_production ⇒ Object
Returns the value of attribute allow_destruction_in_production.
14 15 16 |
# File 'app/utils/hyrax/data_maintenance.rb', line 14 def allow_destruction_in_production @allow_destruction_in_production end |
#logger ⇒ Object
Returns the value of attribute logger.
14 15 16 |
# File 'app/utils/hyrax/data_maintenance.rb', line 14 def logger @logger end |
Instance Method Details
#destroy_log_files ⇒ Object
40 41 42 43 |
# File 'app/utils/hyrax/data_maintenance.rb', line 40 def destroy_log_files # Stubbed until LogFilesDestroyer is written # Hyrax::DataDestroyers::LogFilesDestroyer.destroy_data(logger: logger, allow_destruction_in_production: allow_destruction_in_production) end |
#destroy_repository_metadata_and_related_data ⇒ Object
Clear repository metadata and related data
-
clear repository metadata from the datastore (e.g. Fedora, Postgres) and from Solr
-
clear targeted application data that is tightly coupled to repository metadata
-
delete files that are tightly coupled to repository metadata
26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'app/utils/hyrax/data_maintenance.rb', line 26 def Hyrax::DataDestroyers::RepositoryMetadataDestroyer.(logger: logger, allow_destruction_in_production: allow_destruction_in_production) Hyrax::DataDestroyers::StatsDestroyer.destroy_data(logger: logger, allow_destruction_in_production: allow_destruction_in_production) Hyrax::DataDestroyers::FeaturedWorksDestroyer.destroy_data(logger: logger, allow_destruction_in_production: allow_destruction_in_production) Hyrax::DataDestroyers::PermissionTemplatesDestroyer.destroy_data(logger: logger, allow_destruction_in_production: allow_destruction_in_production) Hyrax::DataDestroyers::CollectionBrandingDestroyer.destroy_data(logger: logger, allow_destruction_in_production: allow_destruction_in_production) Hyrax::DataDestroyers::DefaultAdminSetIdCacheDestroyer.destroy_data(logger: logger, allow_destruction_in_production: allow_destruction_in_production) Hyrax::DataDestroyers::CollectionTypesDestroyer.destroy_data(logger: logger, allow_destruction_in_production: allow_destruction_in_production) # TODO: Stubbed until RepositoryFilesDestroyer is written # Hyrax::DataDestroyers::RepositoryFilesDestroyer.destroy_data(logger: logger, allow_destruction_in_production: allow_destruction_in_production) end |
#destroy_tmp_files ⇒ Object
46 47 48 49 |
# File 'app/utils/hyrax/data_maintenance.rb', line 46 def destroy_tmp_files # Stubbed until TmpFilesDestroyer is written # Hyrax::DataDestroyers::TmpFilesDestroyer.destroy_data(logger: logger, allow_destruction_in_production: allow_destruction_in_production) end |