logidze 0.12.0 → 1.0.0.rc1
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/CHANGELOG.md +29 -5
- data/LICENSE.txt +1 -1
- data/README.md +263 -103
- data/lib/generators/logidze/fx_helper.rb +17 -0
- data/lib/generators/logidze/inject_sql.rb +18 -0
- data/lib/generators/logidze/install/USAGE +6 -1
- data/lib/generators/logidze/install/functions/logidze_compact_history.sql +38 -0
- data/lib/generators/logidze/install/functions/logidze_filter_keys.sql +27 -0
- data/lib/generators/logidze/install/functions/logidze_logger.sql +150 -0
- data/lib/generators/logidze/install/functions/logidze_snapshot.sql +24 -0
- data/lib/generators/logidze/install/functions/logidze_version.sql +20 -0
- data/lib/generators/logidze/install/install_generator.rb +58 -1
- data/lib/generators/logidze/install/templates/hstore.rb.erb +1 -1
- data/lib/generators/logidze/install/templates/migration.rb.erb +19 -232
- data/lib/generators/logidze/install/templates/migration_fx.rb.erb +41 -0
- data/lib/generators/logidze/model/model_generator.rb +49 -13
- data/lib/generators/logidze/model/templates/migration.rb.erb +57 -36
- data/lib/generators/logidze/model/triggers/logidze.sql +6 -0
- data/lib/logidze.rb +27 -14
- data/lib/logidze/history.rb +1 -10
- data/lib/logidze/ignore_log_data.rb +1 -4
- data/lib/logidze/model.rb +48 -35
- data/lib/logidze/version.rb +1 -1
- metadata +48 -73
- data/.gitattributes +0 -3
- data/.github/ISSUE_TEMPLATE.md +0 -20
- data/.github/PULL_REQUEST_TEMPLATE.md +0 -29
- data/.gitignore +0 -40
- data/.rubocop.yml +0 -55
- data/.travis.yml +0 -46
- data/Gemfile +0 -15
- data/Rakefile +0 -28
- data/assets/pg_log_data_chart.png +0 -0
- data/bench/performance/README.md +0 -109
- data/bench/performance/diff_bench.rb +0 -38
- data/bench/performance/insert_bench.rb +0 -22
- data/bench/performance/memory_profile.rb +0 -56
- data/bench/performance/setup.rb +0 -315
- data/bench/performance/update_bench.rb +0 -38
- data/bench/triggers/Makefile +0 -56
- data/bench/triggers/Readme.md +0 -58
- data/bench/triggers/bench.sql +0 -6
- data/bench/triggers/hstore_trigger_setup.sql +0 -38
- data/bench/triggers/jsonb_minus_2_setup.sql +0 -47
- data/bench/triggers/jsonb_minus_setup.sql +0 -49
- data/bench/triggers/keys2_trigger_setup.sql +0 -44
- data/bench/triggers/keys_trigger_setup.sql +0 -50
- data/bin/console +0 -8
- data/bin/setup +0 -9
- data/gemfiles/rails42.gemfile +0 -6
- data/gemfiles/rails5.gemfile +0 -6
- data/gemfiles/rails52.gemfile +0 -6
- data/gemfiles/rails6.gemfile +0 -6
- data/gemfiles/railsmaster.gemfile +0 -7
- data/lib/logidze/ignore_log_data/ignored_columns.rb +0 -46
- data/lib/logidze/migration.rb +0 -20
- data/logidze.gemspec +0 -41
@@ -1,46 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Logidze
|
4
|
-
module IgnoreLogData
|
5
|
-
# Backports ignored_columns functionality to Rails < 5
|
6
|
-
module IgnoredColumns
|
7
|
-
module Base # :nodoc:
|
8
|
-
attr_writer :ignored_columns
|
9
|
-
|
10
|
-
def ignored_columns
|
11
|
-
@ignored_columns ||= []
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
module Relation # :nodoc:
|
16
|
-
private
|
17
|
-
|
18
|
-
def build_select(arel)
|
19
|
-
if select_values.blank? && klass.ignored_columns.any? && ignores_log_data?
|
20
|
-
arel.project(*arel_columns(klass.column_names - klass.ignored_columns))
|
21
|
-
else
|
22
|
-
super
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
module Table # :nodoc:
|
28
|
-
def columns
|
29
|
-
super.reject { |column| ignored_columns.include?(column.name) }
|
30
|
-
end
|
31
|
-
|
32
|
-
private
|
33
|
-
|
34
|
-
def ignored_columns
|
35
|
-
node.base_klass.ignored_columns
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
ActiveRecord::Base.extend(Logidze::IgnoreLogData::IgnoredColumns::Base)
|
43
|
-
ActiveRecord::Relation.include(Logidze::IgnoreLogData::IgnoredColumns::Relation)
|
44
|
-
ActiveRecord::Associations::JoinDependency::Aliases::Table.prepend(
|
45
|
-
Logidze::IgnoreLogData::IgnoredColumns::Table
|
46
|
-
)
|
data/lib/logidze/migration.rb
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Logidze
|
4
|
-
# Contains helpers for handling different PG versions
|
5
|
-
module Migration
|
6
|
-
# Checks whether pg function `current_setting` support `missing_ok` argument
|
7
|
-
# (since 9.6)
|
8
|
-
def current_setting_missing_supported?
|
9
|
-
ActiveRecord::Base.connection.send(:postgresql_version) >= 90_600
|
10
|
-
end
|
11
|
-
|
12
|
-
def current_setting(name)
|
13
|
-
if current_setting_missing_supported?
|
14
|
-
"current_setting('#{name}', true)"
|
15
|
-
else
|
16
|
-
"current_setting('#{name}')"
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
data/logidze.gemspec
DELETED
@@ -1,41 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
lib = File.expand_path("../lib", __FILE__)
|
4
|
-
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
5
|
-
require "logidze/version"
|
6
|
-
|
7
|
-
Gem::Specification.new do |spec|
|
8
|
-
spec.name = "logidze"
|
9
|
-
spec.version = Logidze::VERSION
|
10
|
-
spec.authors = ["palkan"]
|
11
|
-
spec.email = ["dementiev.vm@gmail.com"]
|
12
|
-
|
13
|
-
spec.summary = "PostgreSQL JSON-based auditing"
|
14
|
-
spec.description = "PostgreSQL JSON-based auditing"
|
15
|
-
spec.homepage = "http://github.com/palkan/logidze"
|
16
|
-
spec.license = "MIT"
|
17
|
-
|
18
|
-
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
19
|
-
spec.require_paths = ["lib"]
|
20
|
-
|
21
|
-
spec.required_ruby_version = ">= 2.4.0"
|
22
|
-
|
23
|
-
spec.metadata = {
|
24
|
-
"bug_tracker_uri" => "http://github.com/palkan/logidze/issues",
|
25
|
-
"changelog_uri" => "https://github.com/palkan/logidze/blob/master/CHANGELOG.md",
|
26
|
-
"documentation_uri" => "http://github.com/palkan/logidze",
|
27
|
-
"homepage_uri" => "http://github.com/palkan/logidze",
|
28
|
-
"source_code_uri" => "http://github.com/palkan/logidze"
|
29
|
-
}
|
30
|
-
|
31
|
-
spec.add_dependency "rails", ">= 4.2"
|
32
|
-
|
33
|
-
spec.add_development_dependency "ammeter", "~> 1.1.3"
|
34
|
-
spec.add_development_dependency "bundler", ">= 1.10"
|
35
|
-
spec.add_development_dependency "pg", ">= 0.18"
|
36
|
-
spec.add_development_dependency "rake", ">= 10.0"
|
37
|
-
spec.add_development_dependency "rspec-rails", ">= 3.4"
|
38
|
-
spec.add_development_dependency "rubocop-md", "~> 0.2.0"
|
39
|
-
spec.add_development_dependency "standard", "~> 0.1.2"
|
40
|
-
spec.add_development_dependency "timecop", "~> 0.8"
|
41
|
-
end
|