ninja-deploy 2.1.0 → 2.2.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/README.rdoc CHANGED
@@ -1,4 +1,4 @@
1
- = https://gemnasium.com/ninja-loss/ninja-deploy.png https://secure.travis-ci.org/ninja-loss/ninja-deploy.png?branch=master ninja-deploy
1
+ = ninja-deploy
2
2
 
3
3
  Common shared deployment recipes.
4
4
 
@@ -1,6 +1,9 @@
1
1
  Capistrano::Configuration.instance( :must_exist ).load do
2
+
2
3
  namespace :db do
4
+
3
5
  namespace :dump do
6
+
4
7
  desc 'Dump a remote database, fetch the dump file to local and then load it to the development database'
5
8
  task :to_local_db, :roles => :db, :only => { :primary => true } do
6
9
  local_file_full_path = dump_database_to_local
@@ -36,7 +39,8 @@ Capistrano::Configuration.instance( :must_exist ).load do
36
39
  ssh.exec! "rm #{staging_file_full_path}"
37
40
  end
38
41
  end
39
- end
42
+
43
+ end # namespace :dump
40
44
 
41
45
  def dump_database_to_local
42
46
  prepare_for_database_dump
@@ -54,7 +58,7 @@ Capistrano::Configuration.instance( :must_exist ).load do
54
58
 
55
59
  local_file_full_path
56
60
  end
57
-
61
+
58
62
  def dump_database_to_staging
59
63
  prepare_for_database_dump
60
64
 
@@ -91,7 +95,23 @@ Capistrano::Configuration.instance( :must_exist ).load do
91
95
 
92
96
  def dump_database( password )
93
97
  puts "*** Dumping #{environment_database} database..."
94
- run "mysqldump --add-drop-table -u #{environment_db_user} -h #{environment_db_host.gsub('-master', '-replica')} -p#{password} #{environment_database} | bzip2 -c > #{dump_file_bz2_full_path}"
98
+ run dump_database_cmd( password )
99
+ end
100
+
101
+ def dump_database_cmd( password )
102
+ "mysqldump --add-drop-table -u #{environment_db_user} -h #{environment_db_host.gsub('-master', '-replica')} -p#{password} #{environment_database} #{tables_to_dump} | bzip2 -c > #{dump_file_bz2_full_path}"
103
+ end
104
+
105
+ def tables_to_dump
106
+ require 'rubygems'
107
+ require 'active_record'
108
+ except = ENV['EXCEPT']
109
+ except = except.nil? ? nil : Array( except.split( ',' ) )
110
+ ActiveRecord::Base.establish_connection( local_database_config_hash['development'] )
111
+
112
+ except.nil? ?
113
+ nil :
114
+ (ActiveRecord::Base.connection.tables - except).join( ' ' )
95
115
  end
96
116
 
97
117
  def remove_dump_file
@@ -99,12 +119,16 @@ Capistrano::Configuration.instance( :must_exist ).load do
99
119
  run "rm #{dump_file_bz2_full_path}"
100
120
  end
101
121
 
122
+ def local_database_config_hash
123
+ YAML::load_file( 'config/database.yml' )
124
+ end
125
+
102
126
  # Reads the database credentials from the local config/database.yml file
103
127
  # +db+ the name of the environment to get the credentials for
104
128
  # Returns username, password, database
105
129
  #
106
130
  def database_config( db )
107
- database = YAML::load_file( 'config/database.yml' )
131
+ database = local_database_config_hash
108
132
  return database["#{db}"]['username'], database["#{db}"]['password'], database["#{db}"]['database'], database["#{db}"]['host']
109
133
  end
110
134
 
@@ -117,7 +141,7 @@ Capistrano::Configuration.instance( :must_exist ).load do
117
141
  database = YAML::load( remote_config )
118
142
  return database["#{db}"]['username'], database["#{db}"]['password'], database["#{db}"]['database'], database["#{db}"]['host']
119
143
  end
120
-
144
+
121
145
  def host_database_config( host, user, db )
122
146
  remote_config = nil
123
147
 
@@ -129,5 +153,7 @@ Capistrano::Configuration.instance( :must_exist ).load do
129
153
 
130
154
  return database["#{db}"]['username'], database["#{db}"]['password'], database["#{db}"]['database'], database["#{db}"]['host']
131
155
  end
156
+
132
157
  end
133
- end
158
+
159
+ end
@@ -1,5 +1,5 @@
1
1
  module NinjaDeploy
2
2
 
3
- VERSION = '2.1.0'
3
+ VERSION = '2.2.1'
4
4
 
5
5
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ninja-deploy
3
3
  version: !ruby/object:Gem::Version
4
- hash: 11
4
+ hash: 5
5
5
  prerelease:
6
6
  segments:
7
7
  - 2
8
+ - 2
8
9
  - 1
9
- - 0
10
- version: 2.1.0
10
+ version: 2.2.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Jason Harrelson
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2012-03-14 00:00:00 Z
19
+ date: 2012-11-29 00:00:00 Z
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
22
  name: cape
@@ -121,7 +121,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
121
121
  requirements: []
122
122
 
123
123
  rubyforge_project:
124
- rubygems_version: 1.8.11
124
+ rubygems_version: 1.8.10
125
125
  signing_key:
126
126
  specification_version: 3
127
127
  summary: Common shared deployment recipes for your pleasure.