backup_rails 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.md +7 -1
- data/backup_rails.gemspec +4 -4
- data/examples/backup.rb +80 -0
- data/examples/schedule.rb +8 -0
- data/lib/backup_rails/version.rb +1 -1
- data/lib/backup_rails.rb +1 -0
- metadata +17 -15
data/README.md
CHANGED
@@ -16,9 +16,15 @@ Or install it yourself as:
|
|
16
16
|
|
17
17
|
$ gem install backup_rails
|
18
18
|
|
19
|
+
## TODO
|
20
|
+
|
21
|
+
* Add Rails generator for simple backup scripts.
|
22
|
+
|
19
23
|
## Usage
|
20
24
|
|
21
|
-
|
25
|
+
For now just add the gem to your Gemfile.
|
26
|
+
Move the files in /examples dir into your project.
|
27
|
+
Run whenever to setup your cron job. Make sure you've set the RAILS_ENV correctly.
|
22
28
|
|
23
29
|
## Contributing
|
24
30
|
|
data/backup_rails.gemspec
CHANGED
@@ -16,9 +16,9 @@ Gem::Specification.new do |gem|
|
|
16
16
|
gem.version = BackupRails::VERSION
|
17
17
|
|
18
18
|
# For backup
|
19
|
-
gem.add_dependency 'backup', '
|
20
|
-
gem.add_dependency 'net-ssh'
|
21
|
-
gem.add_dependency 'net-sftp'
|
22
|
-
gem.add_dependency 'mail'
|
19
|
+
gem.add_dependency 'backup', '>= 3.0.24'
|
20
|
+
gem.add_dependency 'net-ssh'
|
21
|
+
gem.add_dependency 'net-sftp'
|
22
|
+
gem.add_dependency 'mail'
|
23
23
|
gem.add_dependency 'whenever' # For cronjob config, see config/schedule.rb
|
24
24
|
end
|
data/examples/backup.rb
ADDED
@@ -0,0 +1,80 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
# Put this file in rails_project/config/backup.rb
|
4
|
+
|
5
|
+
# This is the backup gem config file. Run it from the Rails root using:
|
6
|
+
# backup perform --trigger your_project --config_file config/backup.rb --data-path db --log-path log --tmp-path tmp
|
7
|
+
|
8
|
+
# Read production db config from Rails app.
|
9
|
+
require 'yaml'
|
10
|
+
RAILS_ENV = ENV['RAILS_ENV'] || 'development'
|
11
|
+
APP_ROOT = File.expand_path('..', File.dirname(__FILE__))
|
12
|
+
APP_DB_CONFIG = YAML.load_file(File.join(APP_ROOT, '/config/database.yml'))[RAILS_ENV]
|
13
|
+
|
14
|
+
##
|
15
|
+
# Backup Generated: my_backup
|
16
|
+
# Once configured, you can run the backup with the following command:
|
17
|
+
#
|
18
|
+
# $ backup perform -t my_backup [-c <path_to_configuration_file>]
|
19
|
+
#
|
20
|
+
Backup::Model.new(:your_project, 'Backup of YourProject DB and Assets') do
|
21
|
+
##
|
22
|
+
# Split [Splitter]
|
23
|
+
#
|
24
|
+
# Split the backup file in to chunks of 250 megabytes
|
25
|
+
# if the backup file size exceeds 250 megabytes
|
26
|
+
#
|
27
|
+
split_into_chunks_of 250
|
28
|
+
|
29
|
+
##
|
30
|
+
# MySQL [Database]
|
31
|
+
#
|
32
|
+
database MySQL do |db|
|
33
|
+
# To dump all databases, set `db.name = :all` (or leave blank)
|
34
|
+
db.name = APP_DB_CONFIG['database']
|
35
|
+
db.username = APP_DB_CONFIG['username']
|
36
|
+
db.password = APP_DB_CONFIG['password']
|
37
|
+
db.host = "localhost"
|
38
|
+
db.port = 3306
|
39
|
+
# db.socket = "/tmp/mysql.sock"
|
40
|
+
# Note: when using `skip_tables` with the `db.name = :all` option,
|
41
|
+
# table names should be prefixed with a database name.
|
42
|
+
# e.g. ["db_name.table_to_skip", ...]
|
43
|
+
# db.skip_tables = ["skip", "these", "tables"]
|
44
|
+
# db.only_tables = ["only", "these" "tables"]
|
45
|
+
db.additional_options = ["--quick", "--single-transaction"]
|
46
|
+
# Optional: Use to set the location of this utility
|
47
|
+
# if it cannot be found by name in your $PATH
|
48
|
+
# db.mysqldump_utility = "/opt/local/bin/mysqldump"
|
49
|
+
# db.mysqldump_utility = "/usr/local/mysql-5.5.15-osx10.6-x86_64/bin/mysqldump"
|
50
|
+
end
|
51
|
+
|
52
|
+
store_with SFTP, "YourServer" do |server|
|
53
|
+
server.username = 'user'
|
54
|
+
# server.password = 'secret'
|
55
|
+
server.ip = 'your_server.nl'
|
56
|
+
server.port = 22
|
57
|
+
server.path = '~/backups'
|
58
|
+
server.keep = 5
|
59
|
+
end
|
60
|
+
|
61
|
+
##
|
62
|
+
# Gzip [Compressor]
|
63
|
+
#
|
64
|
+
# compress_with Gzip
|
65
|
+
|
66
|
+
notify_by Mail do |mail|
|
67
|
+
mail.on_success = false
|
68
|
+
mail.on_warning = true
|
69
|
+
mail.on_failure = true
|
70
|
+
|
71
|
+
mail.delivery_method = :sendmail
|
72
|
+
mail.from = 'no-reply@your_project.com'
|
73
|
+
mail.to = 'your@email.com'
|
74
|
+
|
75
|
+
# optional settings:
|
76
|
+
# mail.sendmail # the full path to the `sendmail` program
|
77
|
+
# mail.sendmail_args # string of arguments to to pass to `sendmail`
|
78
|
+
end
|
79
|
+
|
80
|
+
end
|
@@ -0,0 +1,8 @@
|
|
1
|
+
# Put this file in rails_project/config/schedule.rb
|
2
|
+
|
3
|
+
# Backup using the RAILS_ROOT/config/backup.rb backup gem script.
|
4
|
+
# Schedule it using:
|
5
|
+
# whenever
|
6
|
+
every 1.day, :at => '2:30 am' do
|
7
|
+
command "bundle exec backup perform --trigger your_project --config_file config/backup.rb --data-path db --log-path log --tmp-path tmp"
|
8
|
+
end
|
data/lib/backup_rails/version.rb
CHANGED
data/lib/backup_rails.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: backup_rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -16,7 +16,7 @@ dependencies:
|
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
|
-
- -
|
19
|
+
- - ! '>='
|
20
20
|
- !ruby/object:Gem::Version
|
21
21
|
version: 3.0.24
|
22
22
|
type: :runtime
|
@@ -24,7 +24,7 @@ dependencies:
|
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
25
|
none: false
|
26
26
|
requirements:
|
27
|
-
- -
|
27
|
+
- - ! '>='
|
28
28
|
- !ruby/object:Gem::Version
|
29
29
|
version: 3.0.24
|
30
30
|
- !ruby/object:Gem::Dependency
|
@@ -32,49 +32,49 @@ dependencies:
|
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
33
33
|
none: false
|
34
34
|
requirements:
|
35
|
-
- -
|
35
|
+
- - ! '>='
|
36
36
|
- !ruby/object:Gem::Version
|
37
|
-
version:
|
37
|
+
version: '0'
|
38
38
|
type: :runtime
|
39
39
|
prerelease: false
|
40
40
|
version_requirements: !ruby/object:Gem::Requirement
|
41
41
|
none: false
|
42
42
|
requirements:
|
43
|
-
- -
|
43
|
+
- - ! '>='
|
44
44
|
- !ruby/object:Gem::Version
|
45
|
-
version:
|
45
|
+
version: '0'
|
46
46
|
- !ruby/object:Gem::Dependency
|
47
47
|
name: net-sftp
|
48
48
|
requirement: !ruby/object:Gem::Requirement
|
49
49
|
none: false
|
50
50
|
requirements:
|
51
|
-
- -
|
51
|
+
- - ! '>='
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version:
|
53
|
+
version: '0'
|
54
54
|
type: :runtime
|
55
55
|
prerelease: false
|
56
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
57
|
none: false
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ! '>='
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
61
|
+
version: '0'
|
62
62
|
- !ruby/object:Gem::Dependency
|
63
63
|
name: mail
|
64
64
|
requirement: !ruby/object:Gem::Requirement
|
65
65
|
none: false
|
66
66
|
requirements:
|
67
|
-
- -
|
67
|
+
- - ! '>='
|
68
68
|
- !ruby/object:Gem::Version
|
69
|
-
version:
|
69
|
+
version: '0'
|
70
70
|
type: :runtime
|
71
71
|
prerelease: false
|
72
72
|
version_requirements: !ruby/object:Gem::Requirement
|
73
73
|
none: false
|
74
74
|
requirements:
|
75
|
-
- -
|
75
|
+
- - ! '>='
|
76
76
|
- !ruby/object:Gem::Version
|
77
|
-
version:
|
77
|
+
version: '0'
|
78
78
|
- !ruby/object:Gem::Dependency
|
79
79
|
name: whenever
|
80
80
|
requirement: !ruby/object:Gem::Requirement
|
@@ -104,6 +104,8 @@ files:
|
|
104
104
|
- README.md
|
105
105
|
- Rakefile
|
106
106
|
- backup_rails.gemspec
|
107
|
+
- examples/backup.rb
|
108
|
+
- examples/schedule.rb
|
107
109
|
- lib/backup_rails.rb
|
108
110
|
- lib/backup_rails/version.rb
|
109
111
|
homepage: ''
|