Może ktoś was miał do czynienia z tym gemem, wydaje się, że to bardzo dobre narzędzie do robienia backupów. Niestety nie działa mi on do końca. Wprawdzie tworzy modele do wykonania kopii danych, ale wywołanie
backup performer -t my_backup
teoretycznie pakuje odpowiednie pliki, tworzy foldery gdzie powinien umieścić backup, ale samych plików backupa albo nie tworzy (co jest dziwne, bo troche trwa zanim zakończy działanie), albo umieszcza je w dziwnym miejscu, bo w podanym katalogu nie ma kopii.
A teraz konkretniej
backup generate:model --trigger my_backup --databases='postgresql' --compressors='gzip'
tworzy mi taką strukturę
~/Backup/
~/Backup/models/my_backup.rb
~/Backup/config.rb
W pliku my_backup.rb ustawiam odpowiednie dane bazy danych i po wywołaniu:
backup perform --trigger my_backup
otrzymuje takie wyjście:
[2012/09/30 12:03:18][message] Performing Backup for 'Description for my_backup (my_backup)'!
[2012/09/30 12:03:18][message] [ backup 3.0.25 : ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux] ]
[2012/09/30 12:03:18][message] Database::PostgreSQL started dumping and archiving 'spg_development'.
[2012/09/30 12:03:18][message] Using Compressor::Gzip for compression.
[2012/09/30 12:03:18][message] Command: '/bin/gzip'
[2012/09/30 12:03:18][message] Ext: '.gz'
[2012/09/30 12:03:23][message] Database::PostgreSQL Complete!
[2012/09/30 12:03:23][message] Packaging the backup files...
[2012/09/30 12:03:23][message] Splitter configured with a chunk size of 250MB.
[2012/09/30 12:03:23][message] Packaging Complete!
[2012/09/30 12:03:23][message] Cleaning up the temporary files...
[2012/09/30 12:03:23][message] Cleaning up the package files...
[2012/09/30 12:03:23][message] Backup for 'Description for my_backup (my_backup)' Completed Successfully in 00:00:05
Czyli to oznacza, że backup powinien się utworzyć, struktura plików wygląda teraz tak:
~/Backup/
~/Backup/data/my_backup/
~/Backup/log/backup.log
~/Backup/models/my_backup.rb
~/Backup/config.rb
Plik my_backup.rb wygląda tak:
[code=ruby]# encoding: utf-8
Backup Generated: my_backup
Once configured, you can run the backup with the following command:
$ backup perform -t my_backup [-c <path_to_configuration_file>]
Backup::Model.new(:my_backup, ‘Description for my_backup’) do
Split [Splitter]
Split the backup file in to chunks of 250 megabytes
if the backup file size exceeds 250 megabytes
split_into_chunks_of 250
PostgreSQL [Database]
database PostgreSQL do |db|
db.name = “…”
db.username = “…”
db.password = “…”
db.host = “localhost”
db.port = 5432
#db.socket = “/tmp/pg.sock”
#db.skip_tables = [“skip”, “these”, “tables”]
#db.only_tables = [“only”, “these” “tables”]
db.additional_options = ["-xc", “-E=utf8”]
# Optional: Use to set the location of this utility
# if it cannot be found by name in your $PATH
# db.pg_dump_utility = “/opt/local/bin/pg_dump”
end
Gzip [Compressor]
compress_with Gzip
end[/code]
Sprawdzałem gem backup w wersjach 3.0.21 - 3.0.25 i efekt był taki sam. Po uruchomieniu systemu od nowa, nadal backup się nie generował.
Moje ustawienia to rbenv, ruby 1.9.3p194 i rails 3.2.8.