capistrano-mysqldump 1.1.0 → 1.1.1
Sign up to get free protection for your applications and to get access to all the features.
- 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:
|