capistrano-mysqldump 1.1.0 → 1.1.1
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/VERSION +1 -1
- data/capistrano-mysqldump.gemspec +2 -2
- data/lib/capistrano/mysqldump.rb +55 -53
- metadata +3 -3
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.1.
|
1
|
+
1.1.1
|
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "capistrano-mysqldump"
|
8
|
-
s.version = "1.1.
|
8
|
+
s.version = "1.1.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Alex Farrill"]
|
12
|
-
s.date = "2013-
|
12
|
+
s.date = "2013-07-03"
|
13
13
|
s.description = ""
|
14
14
|
s.email = "alex.farrill@gmail.com"
|
15
15
|
s.extra_rdoc_files = [
|
data/lib/capistrano/mysqldump.rb
CHANGED
@@ -1,66 +1,68 @@
|
|
1
|
-
Capistrano::Configuration.instance
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
task :setup do
|
9
|
-
set :mysqldump_config, YAML.load_file("config/database.yml")[rails_env.to_s]
|
10
|
-
host = mysqldump_config["host"]
|
1
|
+
if Capistrano::Configuration.instance
|
2
|
+
Capistrano::Configuration.instance.load do
|
3
|
+
namespace :mysqldump do
|
4
|
+
task :default, :roles => :db do
|
5
|
+
dump
|
6
|
+
import
|
7
|
+
end
|
11
8
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
set :mysqldump_local_tmp_dir, "/tmp" unless exists?(:mysqldump_local_tmp_dir)
|
16
|
-
set :mysqldump_location, host && !host.empty? && host != "localhost" ? :local : :remote unless exists?(:mysqldump_location)
|
9
|
+
task :setup do
|
10
|
+
set :mysqldump_config, YAML.load_file("config/database.yml")[rails_env.to_s]
|
11
|
+
host = mysqldump_config["host"]
|
17
12
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
set :mysqldump_local_filename_gz, File.join( mysqldump_local_tmp_dir, mysqldump_filename_gz )
|
24
|
-
end
|
13
|
+
# overwrite these if necessary
|
14
|
+
set :mysqldump_bin, "/usr/local/mysql/bin/mysqldump" unless exists?(:mysqldump_bin)
|
15
|
+
set :mysqldump_remote_tmp_dir, "/tmp" unless exists?(:mysqldump_remote_tmp_dir)
|
16
|
+
set :mysqldump_local_tmp_dir, "/tmp" unless exists?(:mysqldump_local_tmp_dir)
|
17
|
+
set :mysqldump_location, host && !host.empty? && host != "localhost" ? :local : :remote unless exists?(:mysqldump_location)
|
25
18
|
|
26
|
-
|
27
|
-
|
28
|
-
|
19
|
+
# for convenience
|
20
|
+
set :mysqldump_filename, "%s-%s.sql" % [application, Time.now.to_i]
|
21
|
+
set :mysqldump_filename_gz, "%s.gz" % mysqldump_filename
|
22
|
+
set :mysqldump_remote_filename, File.join( mysqldump_remote_tmp_dir, mysqldump_filename_gz )
|
23
|
+
set :mysqldump_local_filename, File.join( mysqldump_local_tmp_dir, mysqldump_filename )
|
24
|
+
set :mysqldump_local_filename_gz, File.join( mysqldump_local_tmp_dir, mysqldump_filename_gz )
|
25
|
+
end
|
29
26
|
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
case mysqldump_location
|
34
|
-
when :remote
|
35
|
-
mysqldump_cmd += " -u %s -p %s" % [ username, database ]
|
36
|
-
mysqldump_cmd += " | gzip > %s" % mysqldump_remote_filename
|
27
|
+
task :dump, :roles => :db do
|
28
|
+
setup
|
29
|
+
username, password, database, host = mysqldump_config.values_at *%w( username password database host )
|
37
30
|
|
38
|
-
|
39
|
-
|
40
|
-
|
31
|
+
mysqldump_cmd = "%s --quick --single-transaction" % mysqldump_bin
|
32
|
+
mysqldump_cmd += " -h #{host}" if host && !host.empty?
|
33
|
+
|
34
|
+
case mysqldump_location
|
35
|
+
when :remote
|
36
|
+
mysqldump_cmd += " -u %s -p %s" % [ username, database ]
|
37
|
+
mysqldump_cmd += " | gzip > %s" % mysqldump_remote_filename
|
41
38
|
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
`gunzip #{mysqldump_local_filename_gz}`
|
46
|
-
when :local
|
47
|
-
mysqldump_cmd += " -u %s" % username
|
48
|
-
mysqldump_cmd += " -p#{password}" if password && !password.empty?
|
49
|
-
mysqldump_cmd += " %s > %s" % [ database, mysqldump_local_filename]
|
39
|
+
run mysqldump_cmd do |ch, stream, out|
|
40
|
+
ch.send_data "#{password}\n" if out =~ /^Enter password:/
|
41
|
+
end
|
50
42
|
|
51
|
-
|
43
|
+
download mysqldump_remote_filename, mysqldump_local_filename_gz, :via => :scp
|
44
|
+
run "rm #{mysqldump_remote_filename}"
|
45
|
+
|
46
|
+
`gunzip #{mysqldump_local_filename_gz}`
|
47
|
+
when :local
|
48
|
+
mysqldump_cmd += " -u %s" % username
|
49
|
+
mysqldump_cmd += " -p#{password}" if password && !password.empty?
|
50
|
+
mysqldump_cmd += " %s > %s" % [ database, mysqldump_local_filename]
|
51
|
+
|
52
|
+
`#{mysqldump_cmd}`
|
53
|
+
end
|
52
54
|
end
|
53
|
-
end
|
54
55
|
|
55
|
-
|
56
|
-
|
57
|
-
|
56
|
+
task :import do
|
57
|
+
config = YAML.load_file("config/database.yml")["development"]
|
58
|
+
username, password, database = config.values_at *%w( username password database )
|
58
59
|
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
60
|
+
mysql_cmd = "mysql -u#{username}"
|
61
|
+
mysql_cmd += " -p#{password}" if password && !password.empty?
|
62
|
+
`#{mysql_cmd} -e "drop database #{database}; create database #{database}"`
|
63
|
+
`#{mysql_cmd} #{database} < #{mysqldump_local_filename}`
|
64
|
+
`rm #{mysqldump_local_filename}`
|
65
|
+
end
|
64
66
|
end
|
65
67
|
end
|
66
68
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capistrano-mysqldump
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-07-03 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: capistrano
|
@@ -92,7 +92,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
92
92
|
version: '0'
|
93
93
|
segments:
|
94
94
|
- 0
|
95
|
-
hash:
|
95
|
+
hash: -757547364320712607
|
96
96
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
97
97
|
none: false
|
98
98
|
requirements:
|