pgmove 0.1.1 → 0.1.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/pgmove/bucardo.rb +13 -5
- data/lib/pgmove/db.rb +31 -6
- data/lib/pgmove/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0058ca9cae26f102cb737c5bbddfa5fc1cd2303e
|
4
|
+
data.tar.gz: 4ee6d28a48f312ec2e8fb08b2361c274c79bbb8d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6cab6cabfc2672a336aa23589a6b472b6db9373d8024bdad62ab9f951266cda728c459a4f85106a464cc7c7e8f7470b645bff170c0750232165aaaa45bc41115
|
7
|
+
data.tar.gz: eab66862325c672359c553fb3b28de88f98c6c8bad49c7d3a376b84ee3a895aa62e3cf80d17d16615fd6f1acc155f03c7051bef99dc884fac9640fbaccd31caf
|
data/lib/pgmove/bucardo.rb
CHANGED
@@ -74,8 +74,11 @@ module Pgmove
|
|
74
74
|
end
|
75
75
|
|
76
76
|
def finalize
|
77
|
-
|
78
|
-
|
77
|
+
@src_db.disable do |conn|
|
78
|
+
sleep 5
|
79
|
+
stop
|
80
|
+
remove_bucardo conn
|
81
|
+
end
|
79
82
|
@dest_db.finalize
|
80
83
|
end
|
81
84
|
|
@@ -100,9 +103,14 @@ module Pgmove
|
|
100
103
|
end
|
101
104
|
|
102
105
|
def reset_src
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
+
@src_db.pg_conn { |conn| remove_bucardo conn }
|
107
|
+
end
|
108
|
+
|
109
|
+
def remove_bucardo(conn)
|
110
|
+
logger.bullet "removing bucardo"
|
111
|
+
conn.exec "DROP schema if exists bucardo cascade"
|
112
|
+
conn.exec "DROP database IF EXISTS bucardo"
|
113
|
+
conn.exec "drop role IF EXISTS bucardo"
|
106
114
|
end
|
107
115
|
|
108
116
|
def install
|
data/lib/pgmove/db.rb
CHANGED
@@ -30,6 +30,29 @@ module Pgmove
|
|
30
30
|
psql_raw "-f #{path}"
|
31
31
|
end
|
32
32
|
|
33
|
+
def disable
|
34
|
+
new_name = "#{@name}_pgmove_disabled"
|
35
|
+
disable_sql = "update pg_database set datallowconn = false where datname = '#{@name}'"
|
36
|
+
stop_activity_sql = <<~SQL
|
37
|
+
select pg_terminate_backend(pid) from pg_stat_activity
|
38
|
+
where datname = '#{@name}'
|
39
|
+
AND COALESCE(application_name, '') NOT LIKE 'bucardo%'
|
40
|
+
AND COALESCE(application_name, '') NOT LIKE 'pgmove'
|
41
|
+
SQL
|
42
|
+
rename_sql = "ALTER DATABASE #{@name} RENAME to #{new_name}"
|
43
|
+
dbconn = pg_conn
|
44
|
+
pg_conn("postgres") do |conn|
|
45
|
+
logger.bullet "sql: #{disable_sql}"
|
46
|
+
conn.exec disable_sql
|
47
|
+
logger.bullet "sql: #{stop_activity_sql}"
|
48
|
+
conn.exec stop_activity_sql
|
49
|
+
yield dbconn
|
50
|
+
dbconn.close
|
51
|
+
logger.bullet "sql: #{rename_sql}"
|
52
|
+
conn.exec rename_sql
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
33
56
|
def finalize
|
34
57
|
psql "ALTER DATABASE #{@name} RENAME to #{@final_name}", db: "postgres"
|
35
58
|
end
|
@@ -80,13 +103,15 @@ module Pgmove
|
|
80
103
|
end
|
81
104
|
end
|
82
105
|
|
83
|
-
def pg_conn
|
106
|
+
def pg_conn(db = nil)
|
107
|
+
db ||= @name
|
84
108
|
conn = PG::Connection.open(
|
85
|
-
:
|
86
|
-
:
|
87
|
-
:
|
88
|
-
:
|
89
|
-
:
|
109
|
+
dbname: db,
|
110
|
+
user: @user,
|
111
|
+
password: @pass,
|
112
|
+
host: @host,
|
113
|
+
port: @port,
|
114
|
+
application_name: "pgmove"
|
90
115
|
)
|
91
116
|
if block_given?
|
92
117
|
yield conn
|
data/lib/pgmove/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pgmove
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Neeraj
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-11-
|
11
|
+
date: 2016-11-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: pg
|