georgia_recipes 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- 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
|