Class: BackupNexus::Generators::BackupGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Defined in:
lib/generators/backup_nexus/backup_generator.rb

Instance Method Summary collapse

Instance Method Details

#add_to_gitignoreObject



44
45
46
47
48
49
50
# File 'lib/generators/backup_nexus/backup_generator.rb', line 44

def add_to_gitignore
  append_to_file ".gitignore", <<~GITIGNORE unless File.exist?(".gitignore") && File.read(".gitignore").include?("backup_nexus/backups")
    \n# BackupNexus backups
    storage/backup_nexus/backups/
    config/backup/mysql-config/db_config.cnf
  GITIGNORE
end

#create_backup_directoriesObject



12
13
14
15
16
17
18
19
# File 'lib/generators/backup_nexus/backup_generator.rb', line 12

def create_backup_directories
  empty_directory "config/backup"
  empty_directory "config/backup/models"
  empty_directory "config/backup/mysql-config"
  empty_directory "storage/backup_nexus/backups"
  empty_directory "storage/backup_nexus/backups/sync"
  empty_directory "storage/backup_nexus/backups/logs"
end

#create_config_templateObject



21
22
23
# File 'lib/generators/backup_nexus/backup_generator.rb', line 21

def create_config_template
  template "config.rb", "config/backup/config.rb"
end

#create_helper_scriptObject



35
36
37
38
# File 'lib/generators/backup_nexus/backup_generator.rb', line 35

def create_helper_script
  template "backup_helper.sh", "bin/backup_nexus-backup"
  chmod "bin/backup_nexus-backup", 0o755
end

#create_model_templatesObject



25
26
27
28
29
# File 'lib/generators/backup_nexus/backup_generator.rb', line 25

def create_model_templates
  template "models/daily_backup.rb", "config/backup/models/daily_backup.rb"
  template "models/full_backup.rb", "config/backup/models/full_backup.rb"
  template "models/sync_backup.rb", "config/backup/models/sync_backup.rb"
end

#create_mysql_configObject



40
41
42
# File 'lib/generators/backup_nexus/backup_generator.rb', line 40

def create_mysql_config
  template "mysql-config/db_config.cnf", "config/backup/mysql-config/db_config.cnf"
end

#create_schedule_templateObject



31
32
33
# File 'lib/generators/backup_nexus/backup_generator.rb', line 31

def create_schedule_template
  template "schedule.rb", "config/backup/schedule.rb"
end

#show_readmeObject



52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# File 'lib/generators/backup_nexus/backup_generator.rb', line 52

def show_readme
  say ""
  say "✅ Backup directory structure created!", :green
  say ""
  say "Next steps:"
  say "  1. Edit config/backup/config.rb with your database credentials"
  say "  2. Customize models in config/backup/models/"
  say "  3. Install the schedule: whenever --write-crontab"
  say "  4. Test: bin/backup_nexus-backup status"
  say ""
  say "Backup models created:"
  say "  - daily_backup:  Incremental (skips large tables), local + remote"
  say "  - full_backup:   All tables, local only"
  say "  - sync_backup:   Remote sync to backup server"
  say ""
end