capistrano-postgresql 4.1.0 → 4.2.0

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: b311b0bdeec4ade8c62ada9b7d9ec5dd465cb7f9
4
- data.tar.gz: 143489c7a56470dfc9bc02cd552dffdca481f489
3
+ metadata.gz: 66817daa5f2acd494dcb9fab479860322afb5bce
4
+ data.tar.gz: ea853c68b2244ad1f1daf21a15c347346384c90a
5
5
  SHA512:
6
- metadata.gz: cf43f13fc0e56ad6ee0d9cb28b06633357b39b209f51c532d47b2ab13141bc84f8b090bcec5b3356731c660f3005d79d076368fb51312bc01db4c1a8ac3d4c89
7
- data.tar.gz: a4355f5fb71083259f6482df4ad2095f5d4801407b941b5410d9467635acb492665e7d326ec018d07c873055eaad9997e44abd2084705e9eb1d268f145de70a0
6
+ metadata.gz: aadc2570ac885bb15740a43bbb8e1bec1e84cb77d6c2f7a0156cae7eabdd6919fe4bcd4295c5f4c610cb9f175890abd18e446e5a11a13f37db703ac7106d4ae3
7
+ data.tar.gz: a15230e58a32e6ed2b32e766c19179edbd1c4743615b730dd6cae90b4b303b579e72fd5ea656e5b967a61cf5fedbe49bbce0a1153a29abe4d940dcd155eae9c5
@@ -2,6 +2,9 @@
2
2
 
3
3
  ### master
4
4
 
5
+ ### v4.2.0, 2014-11-13
6
+ - add `pg_extensions` option and `add_extensions` or `remove_extensions` methods, to handle various extensions as needed (@twetzel)
7
+
5
8
  ### v4.1.0, 2014-10-08
6
9
  - automatically set `pg_host` option to the IP address of primary `db` host when
7
10
  there are multiple release nodes (@bruno-)
@@ -1,5 +1,5 @@
1
1
  module Capistrano
2
2
  module Postgresql
3
- VERSION = "4.1.0"
3
+ VERSION = "4.2.0"
4
4
  end
5
5
  end
@@ -15,6 +15,7 @@ namespace :load do
15
15
  set :pg_system_user, 'postgres'
16
16
  set :pg_system_db, 'postgres'
17
17
  set :pg_use_hstore, false
18
+ set :pg_extensions, []
18
19
  # template only settings
19
20
  set :pg_templates_path, 'config/deploy/templates'
20
21
  set :pg_env, -> { fetch(:rails_env) || fetch(:stage) }
@@ -70,6 +71,28 @@ namespace :postgresql do
70
71
  end
71
72
  end
72
73
 
74
+ desc "Add pg_extension to postgresql db"
75
+ task :add_extensions do
76
+ next unless Array( fetch(:pg_extensions) ).any?
77
+ on roles :db do
78
+ # add extensions if extension is present
79
+ Array( fetch(:pg_extensions) ).each do |ext|
80
+ psql_on_app_db '-c', %Q{"CREATE EXTENSION IF NOT EXISTS #{ext};"} unless [nil, false, ""].include?(ext)
81
+ end
82
+ end
83
+ end
84
+
85
+ desc "Remove pg_extension from postgresql db"
86
+ task :remove_extensions do
87
+ next unless Array( fetch(:pg_extensions) ).any?
88
+ on roles :db do
89
+ # remove in reverse order if extension is present
90
+ Array( fetch(:pg_extensions) ).reverse.each do |ext|
91
+ psql_on_app_db '-c', %Q{"DROP EXTENSION IF EXISTS #{ext};"} unless [nil, false, ""].include?(ext)
92
+ end
93
+ end
94
+ end
95
+
73
96
  desc 'Create DB user'
74
97
  task :create_db_user do
75
98
  on roles :db do
@@ -129,6 +152,7 @@ namespace :postgresql do
129
152
  invoke "postgresql:create_db_user"
130
153
  invoke "postgresql:create_database"
131
154
  invoke 'postgresql:add_hstore'
155
+ invoke 'postgresql:add_extensions'
132
156
  invoke "postgresql:generate_database_yml_archetype"
133
157
  invoke "postgresql:generate_database_yml"
134
158
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capistrano-postgresql
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.1.0
4
+ version: 4.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bruno Sutic
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-08 00:00:00.000000000 Z
11
+ date: 2014-11-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: capistrano
@@ -85,7 +85,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
85
85
  version: '0'
86
86
  requirements: []
87
87
  rubyforge_project:
88
- rubygems_version: 2.2.2
88
+ rubygems_version: 2.2.0
89
89
  signing_key:
90
90
  specification_version: 4
91
91
  summary: Creates application database user and `database.yml` on the server. No SSH