better_record 0.18.1 → 0.18.2
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f29175178880d4a7a9cf33d526c4413306e20fbdc3475ff3e29c5d8aaa6e9402
|
4
|
+
data.tar.gz: 88684f5a4f39fb50bcd3ddac3bd6578bdd9a2ff2f0b3f7910dec6ec22160ba47
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3f4cca4564a0009bd7c952b4f34f24afeb5aea6e94ac2501776685834f5fd71b1c369f60e15900330d44e9fa0a98b2b34a841cd5421f60bceec86311c5770666
|
7
|
+
data.tar.gz: 8e00305d1efc5f7f795e57e0961165b6fcc7b69834367854b78a81c67c13d4162554fe6461809d9e035a06cf2a1147a2e3910d9e9d0d9c42b52545013a589b89
|
@@ -24,13 +24,23 @@ module BetterRecord
|
|
24
24
|
|
25
25
|
# == Class Methods ========================================================
|
26
26
|
def self.set_audit_methods!
|
27
|
-
|
27
|
+
begin
|
28
|
+
connection.execute(%Q(SELECT 1 FROM #{BetterRecord::LoggedAction.table_name}_#{self.table_name} LIMIT 1))
|
29
|
+
|
30
|
+
self.const_set(:LoggedAction, Class.new(ApplicationRecord))
|
31
|
+
self.const_get(:LoggedAction).table_name = "#{BetterRecord::LoggedAction.table_name}_#{self.table_name}"
|
32
|
+
rescue ActiveRecord::StatementInvalid
|
33
|
+
self.const_set(:LoggedAction, BetterRecord::LoggedAction)
|
34
|
+
end
|
35
|
+
|
28
36
|
self.has_many self.audit_relation_name,
|
29
|
-
class_name:
|
37
|
+
class_name: "#{self.to_s}::LoggedAction",
|
30
38
|
primary_type: :table_name,
|
31
39
|
foreign_key: :row_id,
|
32
40
|
foreign_type: :table_name,
|
33
41
|
as: self.audit_relation_name
|
42
|
+
|
43
|
+
self
|
34
44
|
end
|
35
45
|
|
36
46
|
def self.gender_enum(col)
|
@@ -75,23 +85,14 @@ module BetterRecord
|
|
75
85
|
|
76
86
|
class << self
|
77
87
|
define_method BetterRecord.audit_relation_name do |*args, &block|
|
78
|
-
|
88
|
+
lm =
|
79
89
|
begin
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
self.table_name = "#{BetterRecord::LoggedAction.table_name}_#{self.to_s.deconstantize.constantize.table_name}"
|
84
|
-
self
|
85
|
-
end
|
86
|
-
rescue ActiveRecord::StatementInvalid
|
87
|
-
class self.to_s.constantize::LoggedAction < BetterRecord::LoggedAction
|
88
|
-
self
|
89
|
-
end
|
90
|
+
self.const_get(:LoggedAction)
|
91
|
+
rescue NameError
|
92
|
+
BetterRecord::LoggedAction
|
90
93
|
end
|
91
94
|
|
92
|
-
|
93
|
-
|
94
|
-
base_q = @logger_model.where(table_name: self.table_name)
|
95
|
+
base_q = lm.where(table_name: self.table_name)
|
95
96
|
base_q = base_q.where(*args) if args.present?
|
96
97
|
|
97
98
|
if block
|
@@ -77,27 +77,29 @@ class UpdateBetterRecordAuditFunctions < ActiveRecord::Migration[5.2]
|
|
77
77
|
puts "\n\nTo insert old audits back into logged_actions run:\n\n"
|
78
78
|
|
79
79
|
puts <<-RUBY
|
80
|
-
class BetterRecord::OldLoggedAction < BetterRecord::
|
80
|
+
class BetterRecord::OldLoggedAction < BetterRecord::Base
|
81
81
|
self.table_name = "#{BetterRecord.db_audit_schema}.old_logged_actions"
|
82
82
|
end
|
83
83
|
|
84
|
+
table_list = {}
|
85
|
+
|
84
86
|
while BetterRecord::OldLoggedAction.count > 0
|
85
87
|
p BetterRecord::OldLoggedAction.count
|
86
|
-
BetterRecord::OldLoggedAction.order(:event_id).limit(
|
87
|
-
|
88
|
-
|
89
|
-
|
88
|
+
BetterRecord::OldLoggedAction.order(:event_id).limit(1500).each do |r|
|
89
|
+
unless table_list[r.table_name]
|
90
|
+
begin
|
91
|
+
BetterRecord::LoggedAction.connection.execute(%Q(SELECT 1 FROM #{BetterRecord.db_audit_schema}.logged_actions_#\{r.table_name}))
|
90
92
|
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
BetterRecord.const_set(:NewLoggedAction, nil)
|
97
|
-
klass = BetterRecord::LoggedAction
|
93
|
+
table_list[r.table_name] = Class.new(BetterRecord::Base)
|
94
|
+
table_list[r.table_name].table_name = "#{BetterRecord.db_audit_schema}.logged_actions_#\{r.table_name}"
|
95
|
+
rescue ActiveRecord::StatementInvalid
|
96
|
+
table_list[r.table_name] = BetterRecord::LoggedAction
|
97
|
+
end
|
98
98
|
end
|
99
|
-
|
100
|
-
|
99
|
+
|
100
|
+
BetterRecord.const_set(:NewLoggedAction, table_list[r.table_name])
|
101
|
+
BetterRecord::NewLoggedAction.new(r.attributes).save!(validate: false)
|
102
|
+
p BetterRecord::NewLoggedAction.count
|
101
103
|
r.delete
|
102
104
|
end
|
103
105
|
end
|