pg_conn 0.37.0 → 0.38.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 +4 -4
- data/lib/pg_conn/schema_methods.rb +1 -1
- data/lib/pg_conn/session_methods.rb +37 -0
- data/lib/pg_conn/version.rb +1 -1
- data/lib/pg_conn.rb +0 -37
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bd242e10678e8e9d925e6322f45ea737acb41924cd6982d769c24cb05dbe326d
|
4
|
+
data.tar.gz: bb8c08e465fff1b39f5f8c7cae7316d3a7ff3b03a0287f7b14ba1e131f59b9df
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1777ddc1e093ffd1b5e677a130e6ddbc24bb20a9cbcfa2a83e9c460e9f95a38c33ab4ed0f42cd17dd32bef529ce9356feb46196cec6d51e7a209dd86acd4ca2a
|
7
|
+
data.tar.gz: 4d0ef38a2fe075b3259b77a919da927596a9eefe16bc6ab855a1bbe08bbacbbc5c79953a1dc487d2697ae833c0c1c67d86989020ec1c093a9d90ab76981a3f96
|
@@ -48,7 +48,7 @@ module PgConn
|
|
48
48
|
|
49
49
|
# Empty all tables in the given schema
|
50
50
|
def clean!(schema, exclude: [])
|
51
|
-
conn.
|
51
|
+
conn.session.triggers(false) {
|
52
52
|
self.list_tables(schema, exclude: exclude).each { |table|
|
53
53
|
conn.exec "delete from #{schema}.#{table}"
|
54
54
|
}
|
@@ -84,6 +84,43 @@ module PgConn
|
|
84
84
|
end
|
85
85
|
end
|
86
86
|
|
87
|
+
# Return true if session triggers are enabled. Triggers are enabled by
|
88
|
+
# default by Postgres
|
89
|
+
def triggers?() conn.value "select current_setting('session_replication_role') <> 'replica'" end
|
90
|
+
|
91
|
+
# Enable session triggers
|
92
|
+
def enable_triggers()
|
93
|
+
conn.execute "set session session_replication_role = DEFAULT"
|
94
|
+
end
|
95
|
+
|
96
|
+
# Disable session triggers
|
97
|
+
def disable_triggers()
|
98
|
+
conn.execute "set session session_replication_role = replica"
|
99
|
+
end
|
100
|
+
|
101
|
+
# Executes block without triggers
|
102
|
+
def without_triggers(&block)
|
103
|
+
triggers(false) { yield }
|
104
|
+
end
|
105
|
+
|
106
|
+
# Execute block with session triggers on or off
|
107
|
+
def triggers(on_off, &block)
|
108
|
+
begin
|
109
|
+
active = triggers?
|
110
|
+
if on_off && !active
|
111
|
+
enable_triggers
|
112
|
+
elsif !on_off && active
|
113
|
+
disable_triggers
|
114
|
+
end
|
115
|
+
yield
|
116
|
+
ensure
|
117
|
+
case active
|
118
|
+
when true; enable_triggers if !triggers?
|
119
|
+
when false; disable_triggers if triggers?
|
120
|
+
end
|
121
|
+
end
|
122
|
+
end
|
123
|
+
|
87
124
|
private
|
88
125
|
# Like #list but returns the PIDs of the users
|
89
126
|
def pids(database, users)
|
data/lib/pg_conn/version.rb
CHANGED
data/lib/pg_conn.rb
CHANGED
@@ -1095,43 +1095,6 @@ module PgConn
|
|
1095
1095
|
end
|
1096
1096
|
end
|
1097
1097
|
|
1098
|
-
# Return true if session triggers are enabled. Triggers are enabled by
|
1099
|
-
# default by Postgres
|
1100
|
-
def triggers?() self.value "select current_setting('session_replication_role') <> 'replica'" end
|
1101
|
-
|
1102
|
-
# Enable session triggers
|
1103
|
-
def enable_triggers()
|
1104
|
-
self.execute "set session session_replication_role = DEFAULT"
|
1105
|
-
end
|
1106
|
-
|
1107
|
-
# Disable session triggers
|
1108
|
-
def disable_triggers()
|
1109
|
-
self.execute "set session session_replication_role = replica"
|
1110
|
-
end
|
1111
|
-
|
1112
|
-
# Executes block without triggers
|
1113
|
-
def without_triggers(&block)
|
1114
|
-
triggers(false) { yield }
|
1115
|
-
end
|
1116
|
-
|
1117
|
-
# Execute block with session triggers on or off
|
1118
|
-
def triggers(on_off, &block)
|
1119
|
-
begin
|
1120
|
-
active = triggers?
|
1121
|
-
if on_off && !active
|
1122
|
-
enable_triggers
|
1123
|
-
elsif !on_off && active
|
1124
|
-
disable_triggers
|
1125
|
-
end
|
1126
|
-
yield
|
1127
|
-
ensure
|
1128
|
-
case active
|
1129
|
-
when true; enable_triggers if !triggers?
|
1130
|
-
when false; disable_triggers if triggers?
|
1131
|
-
end
|
1132
|
-
end
|
1133
|
-
end
|
1134
|
-
|
1135
1098
|
def dump(*query)
|
1136
1099
|
records = self.records(*query)
|
1137
1100
|
|