georgia_recipes 0.0.1 → 0.0.2
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 +4 -4
- data/lib/georgia_recipes.rb +0 -1
- data/lib/georgia_recipes/base.rb +1 -6
- data/lib/georgia_recipes/helper_methods.rb +0 -4
- data/lib/georgia_recipes/postgresql.rb +46 -12
- data/lib/georgia_recipes/templates/postgresql.yml.erb +4 -4
- data/lib/georgia_recipes/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a7dadcca0da277b0841dd2a08fd7f75f64fa11ac
|
4
|
+
data.tar.gz: 7f7efe5507f0974ab67fc70c583b5cd58f9532fd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3cf1d5c8acb4a4da341e0f7b8436f4a427ce189ea828b884c7cbb88dd43adb11bdbddc3a12a2cb33e6b80cff95fad59c63fcb815c092b313081227adb71ff338
|
7
|
+
data.tar.gz: eee2a29383b01d2345b18db9b7588cf69ca03d037267ce74808c40c6e37462ffcc416ead8f27cf289d4346fdf6eac6b7e9c7eed55ee7391e425d4237953653eb
|
data/lib/georgia_recipes.rb
CHANGED
data/lib/georgia_recipes/base.rb
CHANGED
@@ -1,15 +1,10 @@
|
|
1
1
|
require 'capistrano'
|
2
2
|
require 'capistrano/cli'
|
3
|
+
require 'georgia_recipes/helper_methods'
|
3
4
|
|
4
5
|
Capistrano::Configuration.instance.load do
|
5
6
|
|
6
7
|
set_default(:host) { ask("What is the fully qualified domain name?") }
|
7
|
-
set_default(:remote_db_user) { db_config_file["#{rails_env}"]["username"] rescue ask("Remote database user: ") }
|
8
|
-
set_default(:remote_db_user) { db_config_file["#{rails_env}"]["database"] rescue ask("Remote database name: ") }
|
9
|
-
set_default(:remote_db_user) { db_config_file["#{rails_env}"]["password"] rescue ask("Remote database password: ") }
|
10
|
-
set_default(:local_db_user) { db_config_file["development"]["username"] rescue ask("Local database user: ") }
|
11
|
-
set_default(:local_db_user) { db_config_file["development"]["database"] rescue ask("Local database name: ") }
|
12
|
-
set_default(:local_db_user) { db_config_file["development"]["password"] rescue ask("Local database password: ") }
|
13
8
|
|
14
9
|
namespace :deploy do
|
15
10
|
|
@@ -1,9 +1,5 @@
|
|
1
1
|
Capistrano::Configuration.instance.load do
|
2
2
|
|
3
|
-
set_default(:db_host, "localhost")
|
4
|
-
set_default(:db_user) { (app_var rescue application) }
|
5
|
-
set_default(:db_password) { Capistrano::CLI.password_prompt "PostgreSQL Password: " }
|
6
|
-
set_default(:db_database) { "#{db_user}_production" }
|
7
3
|
set_default(:postgresql_pid) { "/var/run/postgresql/9.1-main.pid" }
|
8
4
|
|
9
5
|
namespace :pg do
|
@@ -42,20 +38,20 @@ Capistrano::Configuration.instance.load do
|
|
42
38
|
desc "Pull database from remote server"
|
43
39
|
task :pull, roles: :db do
|
44
40
|
run "mkdir -p #{shared_path}/backups"
|
45
|
-
run %Q{#{sudo} -u postgres pg_dump #{
|
41
|
+
run %Q{#{sudo} -u postgres pg_dump #{remote_db_name} --format=tar > #{shared_path}/backups/#{database_filename}}
|
46
42
|
get "#{shared_path}/backups/#{database_filename}", "/tmp/#{database_filename}"
|
47
43
|
run "rm #{shared_path}/backups/#{database_filename}"
|
48
|
-
run_locally "#{sudo} -u postgres pg_restore /tmp/#{database_filename} --clean --format=tar --dbname=#{
|
44
|
+
run_locally "#{sudo} -u postgres pg_restore /tmp/#{database_filename} --clean --format=tar --dbname=#{local_db_user}"
|
49
45
|
run_locally "rm /tmp/#{database_filename}"
|
50
46
|
end
|
51
47
|
|
52
48
|
desc "Push database to remote server"
|
53
49
|
task :push, roles: :db do
|
54
50
|
if are_you_sure?
|
55
|
-
run_locally %Q{#{sudo} -u postgres pg_dump #{
|
51
|
+
run_locally %Q{#{sudo} -u postgres pg_dump #{local_db_user} --format=tar > /tmp/#{database_filename}}
|
56
52
|
upload "/tmp/#{database_filename}", "/tmp/#{database_filename}"
|
57
53
|
run_locally "rm /tmp/#{database_filename}"
|
58
|
-
run "#{sudo} -u postgres pg_restore /tmp/#{database_filename} --clean --format=tar --dbname=#{
|
54
|
+
run "#{sudo} -u postgres pg_restore /tmp/#{database_filename} --clean --format=tar --dbname=#{remote_db_name}"
|
59
55
|
run "rm /tmp/#{database_filename}"
|
60
56
|
deploy.restart
|
61
57
|
end
|
@@ -69,11 +65,11 @@ Capistrano::Configuration.instance.load do
|
|
69
65
|
### Helpers
|
70
66
|
|
71
67
|
def database_filename
|
72
|
-
@database_filename ||= "#{
|
68
|
+
@database_filename ||= "#{application}_#{timestamp}.sql"
|
73
69
|
end
|
74
70
|
|
75
71
|
def database_table_filename
|
76
|
-
@database_table_filename ||= "#{
|
72
|
+
@database_table_filename ||= "#{application}_#{table_name}_#{timestamp}.sql"
|
77
73
|
end
|
78
74
|
|
79
75
|
def table_name
|
@@ -81,12 +77,50 @@ Capistrano::Configuration.instance.load do
|
|
81
77
|
end
|
82
78
|
|
83
79
|
def create_user
|
84
|
-
run %Q{#{sudo} -u postgres psql -c "create user #{
|
80
|
+
run %Q{#{sudo} -u postgres psql -c "create user #{remote_db_user} with password '#{remote_db_password}';"}
|
85
81
|
end
|
86
82
|
|
87
83
|
def create_db
|
88
|
-
run %Q{#{sudo} -u postgres psql -c "create database #{
|
84
|
+
run %Q{#{sudo} -u postgres psql -c "create database #{remote_db_name} owner #{remote_db_user} ENCODING = 'UTF-8' LC_COLLATE = 'en_US.UTF-8' LC_CTYPE = 'en_US.UTF-8' TEMPLATE template0;"}
|
89
85
|
end
|
86
|
+
|
87
|
+
def local_db_config(key)
|
88
|
+
begin
|
89
|
+
config = File.read('config/database.yml')
|
90
|
+
YAML.load(config)["development"][key]
|
91
|
+
rescue
|
92
|
+
request_from_prompt(key)
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
def remote_db_config(key)
|
97
|
+
begin
|
98
|
+
config = capture("cat #{shared_path}/config/database.yml")
|
99
|
+
YAML.load(config)[rails_env][key]
|
100
|
+
rescue
|
101
|
+
request_from_prompt(key, env: rails_env)
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
def request_from_prompt key, env='Development'
|
106
|
+
case key
|
107
|
+
when :database
|
108
|
+
ask("#{env} database name: ")
|
109
|
+
when :password
|
110
|
+
Capistrano::CLI.password_prompt("#{env} database password: ")
|
111
|
+
else
|
112
|
+
ask("#{env} database #{key}: ")
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
116
|
+
set_default(:remote_db_user) { remote_db_config(:username) }
|
117
|
+
set_default(:remote_db_name) { remote_db_config(:database) }
|
118
|
+
set_default(:remote_db_password) { remote_db_config(:password) }
|
119
|
+
|
120
|
+
set_default(:local_db_user) { local_db_config(:username) }
|
121
|
+
set_default(:local_db_name) { local_db_config(:database) }
|
122
|
+
set_default(:local_db_password) { local_db_config(:password) }
|
123
|
+
|
90
124
|
end
|
91
125
|
|
92
126
|
end
|
@@ -1,8 +1,8 @@
|
|
1
1
|
production:
|
2
2
|
adapter: postgresql
|
3
3
|
encoding: unicode
|
4
|
-
database: <%=
|
4
|
+
database: <%= remote_db_config(:database) %>
|
5
5
|
pool: 5
|
6
|
-
username: <%=
|
7
|
-
password: <%=
|
8
|
-
host:
|
6
|
+
username: <%= remote_db_config(:username) %>
|
7
|
+
password: <%= remote_db_config(:password) %>
|
8
|
+
host: localhost
|