capistrano-postgresql 4.1.0 → 4.2.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.
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