rails-backup-migrate 0.0.9 → 0.0.10
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/.gitignore +2 -0
- data/CHANGELOG +8 -0
- data/README.textile +1 -1
- data/lib/rails-backup-migrate.rb +26 -17
- data/lib/rails-backup-migrate/version.rb +1 -1
- data/lib/tasks/rails-backup-migrate.rake +7 -3
- metadata +6 -7
data/.gitignore
CHANGED
data/CHANGELOG
CHANGED
@@ -1,3 +1,11 @@
|
|
1
|
+
*0.0.9 (2011-08-18)*
|
2
|
+
|
3
|
+
* Improvements to help with character set issues in Ruby 1.9.2
|
4
|
+
|
5
|
+
*0.0.8 (2011-07-25)*
|
6
|
+
|
7
|
+
* Added check to only include 'files' directory if it is used by the rails app.
|
8
|
+
|
1
9
|
*0.0.7 (2011-07-17)*
|
2
10
|
|
3
11
|
* Removed wildcard path when using `tar` to load database files as this required an option for GnuTar but not on BSD Tar. [Matt Connolly]
|
data/README.textile
CHANGED
@@ -25,7 +25,7 @@ h2. More info
|
|
25
25
|
|
26
26
|
The backup file can be specified with a command line argument in rake's (wierd) format:
|
27
27
|
|
28
|
-
<pre
|
28
|
+
<pre><code> $ rake site:backup[/path/to/file.tgz]</code></pre>
|
29
29
|
|
30
30
|
h2. Compatibility
|
31
31
|
|
data/lib/rails-backup-migrate.rb
CHANGED
@@ -20,12 +20,13 @@ module RailsBackupMigrate
|
|
20
20
|
@archive_file = nil
|
21
21
|
@files_to_archive = []
|
22
22
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
23
|
+
VERBOSE =
|
24
|
+
if ENV['verbose'] || ENV['VERBOSE']
|
25
|
+
true
|
26
|
+
else
|
27
|
+
false
|
28
|
+
end
|
29
|
+
|
29
30
|
# singleton methods for Module `RailsBackupMigrate`
|
30
31
|
class << self
|
31
32
|
attr_accessor :backup_file
|
@@ -37,19 +38,21 @@ module RailsBackupMigrate
|
|
37
38
|
end
|
38
39
|
end
|
39
40
|
|
40
|
-
# add a path to be archived. Expected path to be relative to
|
41
|
+
# add a path to be archived. Expected path to be relative to Rails.root. This is where the archive
|
41
42
|
# will be created so that uploaded files (the 'files' dir) can be reference in place without needing to be copied.
|
42
43
|
def add_to_archive path
|
43
|
-
# check it's relative to
|
44
|
-
raise "File '#{path}' does not exist" unless File
|
44
|
+
# check it's relative to Rails.root
|
45
|
+
raise "File '#{path}' does not exist" unless File.exist? path
|
45
46
|
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
relative.gsub! /^#{File::SEPARATOR}/,''
|
47
|
+
expanded_path = File.expand_path(path)
|
48
|
+
if expanded_path.start_with?(rails_root.to_s)
|
49
|
+
# remove rails_root from absolute path
|
50
|
+
relative = expanded_path.sub(rails_root + File::SEPARATOR,'')
|
51
51
|
# add to list
|
52
|
+
puts "Adding relative path: '#{relative}'" if VERBOSE
|
52
53
|
@files_to_archive << relative
|
54
|
+
else
|
55
|
+
raise "Cannot add a file that is not under Rails root directory. (#{expanded_path} not under #{rails_root})"
|
53
56
|
end
|
54
57
|
end
|
55
58
|
|
@@ -87,14 +90,14 @@ module RailsBackupMigrate
|
|
87
90
|
def create_archive backup_file
|
88
91
|
puts "creating archive..." if VERBOSE
|
89
92
|
absolute = File::expand_path backup_file
|
90
|
-
Dir::chdir
|
93
|
+
Dir::chdir rails_root
|
91
94
|
`tar -czf #{absolute} #{files_to_archive.join ' '}`
|
92
95
|
end
|
93
96
|
|
94
97
|
|
95
98
|
# save the required database tables to .yml files in a folder 'yml' and add them to the backup
|
96
99
|
def save_db_to_yml
|
97
|
-
FileUtils.chdir
|
100
|
+
FileUtils.chdir rails_root
|
98
101
|
FileUtils.mkdir_p 'db/backup'
|
99
102
|
FileUtils.chdir 'db/backup'
|
100
103
|
|
@@ -107,7 +110,7 @@ module RailsBackupMigrate
|
|
107
110
|
end
|
108
111
|
|
109
112
|
# simply add the whole yml folder to the archive
|
110
|
-
FileUtils.chdir
|
113
|
+
FileUtils.chdir rails_root
|
111
114
|
add_to_archive 'db/backup'
|
112
115
|
end
|
113
116
|
|
@@ -126,6 +129,12 @@ module RailsBackupMigrate
|
|
126
129
|
end
|
127
130
|
end
|
128
131
|
end
|
132
|
+
|
133
|
+
def rails_root
|
134
|
+
# in ruby 1.9.3, `Rails.root` is a Pathname object, that plays mess with string comparisons
|
135
|
+
# so we'll ensure we have a string
|
136
|
+
Rails.root.to_s
|
137
|
+
end
|
129
138
|
end
|
130
139
|
end
|
131
140
|
|
@@ -17,7 +17,11 @@ namespace :site do
|
|
17
17
|
# private task: save the db/schema.rb file, calls 'db:schema:dump' as a dependency
|
18
18
|
task :_save_db_schema, [:backup_file] => [:environment, 'db:schema:dump'] do |t, args|
|
19
19
|
puts "adding db/schema.rb to archive list." if RailsBackupMigrate::VERBOSE
|
20
|
-
Dir::chdir
|
20
|
+
Dir::chdir Rails.root
|
21
|
+
if RailsBackupMigrate::VERBOSE
|
22
|
+
puts "Checking if the db/schema file exists: " + (File.exist?('db/schema.rb') ? 'YES' : 'NO')
|
23
|
+
puts "Full path expands to: " + File.expand_path('db/schema.rb')
|
24
|
+
end
|
21
25
|
RailsBackupMigrate.add_to_archive 'db/schema.rb'
|
22
26
|
end
|
23
27
|
|
@@ -81,7 +85,7 @@ namespace :site do
|
|
81
85
|
# private task: restore db/schema.rb, expected to be a dependency before 'db:schema:load'
|
82
86
|
task :_restore_db_schema, [:backup_file] => [:_set_backup_file] do |t, args|[]
|
83
87
|
puts "restoring db/schema.rb from archive." if RailsBackupMigrate::VERBOSE
|
84
|
-
Dir::chdir
|
88
|
+
Dir::chdir Rails.root
|
85
89
|
# extract the schema.rb file in place
|
86
90
|
options = RailsBackupMigrate::VERBOSE ? '-xvzf' : '-xzf'
|
87
91
|
`tar #{options} #{RailsBackupMigrate.backup_file} db/schema.rb`
|
@@ -98,7 +102,7 @@ namespace :site do
|
|
98
102
|
|
99
103
|
# private task: restore 'files' directory. Should we delete the contents of it?? not for now...
|
100
104
|
task :_restore_files_directory, [:backup_file] => [:_set_backup_file] do |t, args|
|
101
|
-
Dir::chdir
|
105
|
+
Dir::chdir Rails.root
|
102
106
|
# extract the 'files' directory in place
|
103
107
|
|
104
108
|
# check if there is 'files/' in the archive file (perhaps this app doesn't have downloads)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rails-backup-migrate
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.10
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,12 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-
|
13
|
-
default_executable:
|
12
|
+
date: 2011-12-13 00:00:00.000000000 Z
|
14
13
|
dependencies:
|
15
14
|
- !ruby/object:Gem::Dependency
|
16
15
|
name: activerecord
|
17
|
-
requirement: &
|
16
|
+
requirement: &70155964458440 !ruby/object:Gem::Requirement
|
18
17
|
none: false
|
19
18
|
requirements:
|
20
19
|
- - ! '>='
|
@@ -22,7 +21,7 @@ dependencies:
|
|
22
21
|
version: '2.3'
|
23
22
|
type: :runtime
|
24
23
|
prerelease: false
|
25
|
-
version_requirements: *
|
24
|
+
version_requirements: *70155964458440
|
26
25
|
description: ! "Creates a directory db/backup in the rails app and creates / loads
|
27
26
|
YML files from there. \n After a backup, the db/backups directory is archived
|
28
27
|
into a .tgz file and then deleted.\n When restoring, the db/backup directory
|
@@ -51,7 +50,6 @@ files:
|
|
51
50
|
- lib/rails-backup-migrate/version.rb
|
52
51
|
- lib/tasks/rails-backup-migrate.rake
|
53
52
|
- rails-backup-migrate.gemspec
|
54
|
-
has_rdoc: true
|
55
53
|
homepage: ''
|
56
54
|
licenses: []
|
57
55
|
post_install_message:
|
@@ -72,8 +70,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
72
70
|
version: '0'
|
73
71
|
requirements: []
|
74
72
|
rubyforge_project: rails-backup-migrate
|
75
|
-
rubygems_version: 1.
|
73
|
+
rubygems_version: 1.8.10
|
76
74
|
signing_key:
|
77
75
|
specification_version: 3
|
78
76
|
summary: Backup and restore a rails application including database data and files
|
79
77
|
test_files: []
|
78
|
+
has_rdoc:
|