capones_recipes 0.6.0 → 0.7.0

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 CHANGED
@@ -1 +1 @@
1
- 0.6.0
1
+ 0.7.0
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{capones_recipes}
8
- s.version = "0.6.0"
8
+ s.version = "0.7.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Roman Simecek"]
@@ -40,8 +40,6 @@ Gem::Specification.new do |s|
40
40
  "lib/recipes/katalog.rb",
41
41
  "lib/recipes/katalog/import.rb",
42
42
  "lib/recipes/katalog/katalog.rb",
43
- "lib/recipes/kuhsaft.rb",
44
- "lib/recipes/kuhsaft/sync.rb",
45
43
  "lib/recipes/new_relic.rb",
46
44
  "lib/recipes/new_relic/new_relic.rb",
47
45
  "lib/recipes/rails.rb",
@@ -178,6 +178,47 @@ Capistrano::Configuration.instance.load do
178
178
  logger.important "sync database from local to the stage '#{stage}' finished"
179
179
  end
180
180
 
181
+ desc <<-DESC
182
+ Syncs database from the local develoment environment to the selected mutli_stage environement.
183
+ The database credentials will be read from your local config/database.yml file and a copy of the
184
+ dump will be kept within the shared sync directory. The amount of backups that will be kept is
185
+ declared in the sync_backups variable and defaults to 5.
186
+ DESC
187
+ task :kuhsaft, :roles => :db, :only => { :primary => true } do
188
+ # Use production on non-multistage
189
+ set :stage, 'production' unless exists?(:stage)
190
+
191
+ filename = "database.kuhsaft.#{stage}.#{Time.now.strftime '%Y-%m-%d_%H:%M:%S'}.sql.bz2"
192
+
193
+ on_rollback do
194
+ delete "#{shared_path}/sync/#{filename}"
195
+ system "rm -f #{filename}"
196
+ end
197
+
198
+ # Make a backup before importing
199
+ username, password, database, host = remote_database_config(stage)
200
+ host_option = host ? "--host='#{host}'" : ""
201
+ run "mysqldump -u #{username} --password='#{password}' #{host_option} #{database} pages localized_pages contents assets tags taggings | bzip2 -9 > #{shared_path}/sync/#{filename}" do |channel, stream, data|
202
+ puts data
203
+ end
204
+
205
+ # Local DB export
206
+ filename = "dump.local.#{Time.now.strftime '%Y-%m-%d_%H:%M:%S'}.sql.bz2"
207
+ username, password, database, host = database_config('development')
208
+ host_option = host ? "--host='#{host}'" : ""
209
+ system "mysqldump -u #{username} --password='#{password}' #{host_option} #{database} | bzip2 -9 > #{filename}"
210
+ upload filename, "#{shared_path}/sync/#{filename}"
211
+ system "rm -f #{filename}"
212
+
213
+ # Remote DB import
214
+ username, password, database, host = remote_database_config(stage)
215
+ host_option = host ? "--host='#{host}'" : ""
216
+ run "bzip2 -d -c #{shared_path}/sync/#{filename} | mysql -u #{username} --password='#{password}' #{host_option} #{database}; rm -f #{shared_path}/sync/#{filename}"
217
+ purge_old_backups "database"
218
+
219
+ logger.important "sync database from local to the stage '#{stage}' finished"
220
+ end
221
+
181
222
  desc <<-DESC
182
223
  Sync declared directories from the local development environement to the selected multi_stage
183
224
  environment. The synced directories must be declared as an array of Strings with the sync_directories
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: capones_recipes
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.6.0
5
+ version: 0.7.0
6
6
  platform: ruby
7
7
  authors:
8
8
  - Roman Simecek
@@ -134,8 +134,6 @@ files:
134
134
  - lib/recipes/katalog.rb
135
135
  - lib/recipes/katalog/import.rb
136
136
  - lib/recipes/katalog/katalog.rb
137
- - lib/recipes/kuhsaft.rb
138
- - lib/recipes/kuhsaft/sync.rb
139
137
  - lib/recipes/new_relic.rb
140
138
  - lib/recipes/new_relic/new_relic.rb
141
139
  - lib/recipes/rails.rb
@@ -162,7 +160,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
162
160
  requirements:
163
161
  - - ">="
164
162
  - !ruby/object:Gem::Version
165
- hash: -4200710683689644275
163
+ hash: -125520120456256867
166
164
  segments:
167
165
  - 0
168
166
  version: "0"
@@ -1,15 +0,0 @@
1
- Capistrano::Configuration.instance.load do
2
- namespace :kuhsaft do
3
- namespace :sync do
4
- desc "Syncs down the tables of kuhsaft"
5
- task :down do
6
- puts 'TODO: kuhsaft down'
7
- end
8
-
9
- desc "Syncs up the tables of kuhsaft"
10
- task :up do
11
- puts 'TODO: kuhsaft up'
12
- end
13
- end
14
- end
15
- end
@@ -1 +0,0 @@
1
- Dir.glob(File.join(File.dirname(__FILE__), '/kuhsaft/*.rb')).sort.each { |f| load f }