50 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Ruby
		
	
	
	
| # frozen_string_literal: true
 | |
| 
 | |
| module Backup
 | |
|   module Tasks
 | |
|     class Database < Task
 | |
|       def self.id = 'db'
 | |
| 
 | |
|       def human_name = _('database')
 | |
| 
 | |
|       def destination_path = 'db'
 | |
| 
 | |
|       def cleanup_path = 'db'
 | |
| 
 | |
|       def pre_restore_warning
 | |
|         return if options.force
 | |
| 
 | |
|         <<-MSG.strip_heredoc
 | |
|         Be sure to stop Puma, Sidekiq, and any other process that
 | |
|         connects to the database before proceeding. For Omnibus
 | |
|         installs, see the following link for more information:
 | |
|         #{::Gitlab::Routing.url_helpers.help_page_url('administration/backup_restore/restore_gitlab.md', anchor: 'restore-for-linux-package-installations')}
 | |
| 
 | |
|         Before restoring the database, we will remove all existing
 | |
|         tables to avoid future upgrade problems. Be aware that if you have
 | |
|         custom tables in the GitLab database these tables and all data will be
 | |
|         removed.
 | |
|         MSG
 | |
|       end
 | |
| 
 | |
|       def post_restore_warning
 | |
|         return if target.errors.empty?
 | |
| 
 | |
|         <<-MSG.strip_heredoc
 | |
|         There were errors in restoring the schema. This may cause
 | |
|         issues if this results in missing indexes, constraints, or
 | |
|         columns. Please record the errors above and contact GitLab
 | |
|         Support if you have questions:
 | |
|         https://about.gitlab.com/support/
 | |
|         MSG
 | |
|       end
 | |
| 
 | |
|       private
 | |
| 
 | |
|       def target
 | |
|         @target ||= ::Backup::Targets::Database.new(progress, options: options)
 | |
|       end
 | |
|     end
 | |
|   end
 | |
| end
 |