minimum_viable_product 0.0.22 → 0.0.23

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 03a85b1f68224c845747bafe537031c205ff499c
4
- data.tar.gz: 7566793cb7d3f53de6fc53750ba49a3ccfea8408
3
+ metadata.gz: 79ca64c758ce4600855f92b3a5e43614409c1fe4
4
+ data.tar.gz: 9afa5a67c65d81e0102ee1f3db227a30392466a9
5
5
  SHA512:
6
- metadata.gz: 5f8d0be8714ae6c24d3ef829e20cbc482908f786fe14d7a45227c3f5433a8cf998ba00d18ee06325396e9ad94499f94cd513e3001d7b0e1686cd8ef4f98ca48a
7
- data.tar.gz: e2e22aaa3ed7c651d113b6880c5d80f3ac4454923757edf17c4274370af18dc5c2cf9c75d43e2bec135470fe09a42d7b858e5092256497cbe22c7bf3fcf494f0
6
+ metadata.gz: a70fed7ef6ab77614c4025f598511e4c04e8d742fbc7e2f8f672e096b1d0d85bff422b0b1840a35adb1acdd04e7b024c4d30c5709fd21a6755f1ad5b64b993d8
7
+ data.tar.gz: b53e7e830cc1fb5e19a59c3431508bbfcdf86f7cd627b1d4a1978b5ccf922995d9624a46183aa2e7723cb45b75bf7d75fe9dc3ce2431997d04ca3fb94e361084
@@ -1,3 +1,3 @@
1
1
  module MinimumViableProduct
2
- VERSION = "0.0.22"
2
+ VERSION = "0.0.23"
3
3
  end
data/lib/tasks/db.rake ADDED
@@ -0,0 +1,70 @@
1
+ require 'json'
2
+
3
+ def run(cmd, quiet=true)
4
+ puts "Running #{cmd}" if ENV['DEBUG'] == 'true'
5
+ command = [cmd]
6
+ command << "&>/dev/null" if quiet
7
+ system(command.join(' '))
8
+ end
9
+
10
+ namespace :db do
11
+ desc 'Pull down production database'
12
+ task :import => ['db:dump:postgres', 'db:import:postgres'] do
13
+ puts "Done"
14
+ end
15
+
16
+ namespace :capture do
17
+ task :postgres do
18
+ puts "Capturing Production Backup ..."
19
+ run("heroku pg:backups capture", false)
20
+ end
21
+ end
22
+
23
+ namespace :dump do
24
+ task :postgres do
25
+ Rake::Task["db:capture:postgres"].execute if ENV['CAPTURE']
26
+ puts "Loading Production Dump ..."
27
+ run("curl -o tmp/latest.dump `heroku pg:backups public-url`")
28
+ end
29
+
30
+ task :clean do
31
+ run("rm tmp/latest.dump")
32
+ end
33
+ end
34
+
35
+ namespace :import do
36
+ task :postgres => ['kill_postgres_connections','db:drop','db:create'] do
37
+ config = Rails.configuration.database_configuration
38
+ host = config[Rails.env]["host"]
39
+ database = config[Rails.env]["database"]
40
+ username = config[Rails.env]["username"]
41
+ password = config[Rails.env]["password"]
42
+
43
+ puts "Importing to #{database} ..."
44
+
45
+ cmd = ["pg_restore --verbose --clean --no-acl --no-owner"]
46
+ cmd << "-h #{host}" if host.present?
47
+ cmd << "-U #{username}" if username.present?
48
+ cmd << "-p #{password}" if password.present?
49
+ cmd << "-d #{database}"
50
+ cmd << "tmp/latest.dump"
51
+ run(cmd.join(' '))
52
+ end
53
+
54
+ task :kill_postgres_connections => :environment do
55
+ env = "development"
56
+ db_config = Rails.configuration.database_configuration[env]
57
+ fail(ArgumentError, "Could not find db config entry for env (#{env})") unless db_config
58
+ db_name = db_config['database']
59
+
60
+ # thanks to http://stackoverflow.com/questions/12924466/capistrano-with-postgresql-error-database-is-being-accessed-by-other-users
61
+ # previously, we were kill'ing the postgres processes: http://stackoverflow.com/questions/2369744/rails-postgres-drop-error-database-is-being-accessed-by-other-users
62
+ cmd = %(psql -c "SELECT pid, pg_terminate_backend(pid) as terminated FROM pg_stat_activity WHERE pid <> pg_backend_pid();" -d '#{db_name}')
63
+
64
+ unless run(cmd)
65
+ fail $?.inspect
66
+ end
67
+ end
68
+
69
+ end
70
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: minimum_viable_product
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.22
4
+ version: 0.0.23
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ian Hunter
@@ -494,6 +494,7 @@ files:
494
494
  - lib/minimum_viable_product/ext/nil.rb
495
495
  - lib/minimum_viable_product/ext/string.rb
496
496
  - lib/minimum_viable_product/version.rb
497
+ - lib/tasks/db.rake
497
498
  - lib/tasks/sitemap.rake
498
499
  - test/dummy/README.rdoc
499
500
  - test/dummy/Rakefile