10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
# File 'lib/solid_backup/generators/install_generator.rb', line 10
def copy_initializer
backups = []
ActiveRecord::Base.configurations.configs_for(env_name: "production").each do |db_config|
backups << if yes?("Back up #{db_config.name} in production?")
" production.backup \#{db_config.name.inspect},\n SolidBackup::Backup::API,\n destination: \"storage/backups\",\n interval_in_minutes: 60,\n expiration: SolidBackup::Expiration::Age.new(maximum: 24.hours),\n step: 100,\n wait: 0.1\n CODE\n else\n \"production.backup \#{db_config.name.inspect}, SolidBackup::Backup::None\"\n end\n end\n\n initializer \"solid_backup.rb\", <<~CODE\n SolidBackup.configure do |config|\n # Enable or disable Solid Backup globally.\n config.enabled = Rails.env.production?\n\n # Backup configuration for each database.\n #\n # IMPORTANT: all databases must be explicitly configured, even if they're not\n # backed up, to avoid accidentally excluding new databases from backups.\n config.environment(\"production\") do |production|\n \#{backups.join(\"\\n\").indent(4)}\n end\n end\n CODE\n\n insert_into_file \"config/puma.rb\", <<~CODE\n\n # Run Solid Backup in the background.\n plugin :solid_backup\n CODE\n\n empty_directory \"storage/backups\"\n create_file \"storage/backups/.keep\"\n\n insert_into_file \".gitignore\", \"!/storage/backups/.keep\\n\", after: \"!/storage/.keep\\n\"\nend\n".chomp
|