database_consistency 2.0.1 → 2.0.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ba84801df64868302240abb6b325652bc21c34086c2b4d32460bb092f55d7681
4
- data.tar.gz: 49ba63ec3857648e90121ef8e7692fe217fcb41592b21087876628caa7888427
3
+ metadata.gz: 10a47440f23b099f99610cd51a5150d741c36f439db1b41ed013c7e471d055e2
4
+ data.tar.gz: d41e1338822d6bde0dda339d1be9f1e719559c493d6ed93df2fe430457155ef9
5
5
  SHA512:
6
- metadata.gz: f29ab6930f1317041b38879890a0195ed03d7620647a08baa5061fd82cd5b124587f0acafa9fe15b1d92747b4a8e7f05528fb4882b170cdf6feb23ed326547aa
7
- data.tar.gz: a4e7fb560d24c41aa1dc02ad3127658ac9ab6f268be885843ca03cf24bc49e4354cec95f8d78a69ad44579eaef984a555c578e347eb98645de27248c75edfe3e
6
+ metadata.gz: 48cffa667822acc96791b45f2c5821cd3920ed217d451340361d8184dac927843755940443e2e4506358847736687aab5d4adbe1c68e5f3db08da35d9b9a1ff9
7
+ data.tar.gz: bfe3e7df7e47c4988aeae5fe9c2157786c221047fec5a0f9f435457020f65d99ebb2722c94ddce4204ed84a49ffdab8849fc85ab5e282d39722bcf68ddd4e9cd
@@ -34,11 +34,15 @@ module DatabaseConsistency
34
34
  ].compact
35
35
  end
36
36
 
37
- def enum_column_values
38
- @enum_column_values ||= begin
39
- _, values = model.connection.enum_types.find { |(enum, _)| enum == column.sql_type }
40
- values.split(',').map(&:strip)
41
- end
37
+ def enum_column_values # rubocop:disable Metrics/AbcSize
38
+ @enum_column_values ||=
39
+ if model.connection.enum_types.is_a?(Array)
40
+ _, values = model.connection.enum_types.find { |(enum, _)| enum == column.sql_type }
41
+ values.split(',').map(&:strip)
42
+ else
43
+ # active_record-postgres_enum gem
44
+ model.connection.enum_types[column.sql_type.to_sym]
45
+ end
42
46
  end
43
47
 
44
48
  def verify_enum
@@ -7,6 +7,7 @@ module DatabaseConsistency
7
7
  Report = ReportBuilder.define(
8
8
  DatabaseConsistency::Report,
9
9
  :covered_index_name,
10
+ :table_name,
10
11
  :index_name
11
12
  )
12
13
 
@@ -39,6 +40,7 @@ module DatabaseConsistency
39
40
  error_message: nil,
40
41
  covered_index_name: covered_by_index&.name,
41
42
  index_name: index.name,
43
+ table_name: model.table_name,
42
44
  **report_attributes
43
45
  )
44
46
  end
@@ -7,7 +7,8 @@ module DatabaseConsistency
7
7
  Report = ReportBuilder.define(
8
8
  DatabaseConsistency::Report,
9
9
  :index_name,
10
- :covered_index_name
10
+ :covered_index_name,
11
+ :table_name
11
12
  )
12
13
 
13
14
  private
@@ -39,6 +40,7 @@ module DatabaseConsistency
39
40
  error_message: nil,
40
41
  index_name: index.name,
41
42
  covered_index_name: covered_by_index&.name,
43
+ table_name: model.table_name,
42
44
  **report_attributes
43
45
  )
44
46
  end
@@ -12,7 +12,7 @@ module DatabaseConsistency
12
12
  end
13
13
 
14
14
  def column_or_attribute_name
15
- nil
15
+ 'self'
16
16
  end
17
17
 
18
18
  def table_or_model_name
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DatabaseConsistency
4
- VERSION = '2.0.1'
4
+ VERSION = '2.0.3'
5
5
  end
@@ -6,7 +6,8 @@ module DatabaseConsistency
6
6
  class RedundantIndex < MigrationBase # :nodoc:
7
7
  def attributes
8
8
  {
9
- index_name: report.index_name
9
+ index_name: report.index_name,
10
+ table_name: report.table_name
10
11
  }
11
12
  end
12
13
 
@@ -1,5 +1,5 @@
1
1
  class %<migration_name>s < ActiveRecord::Migration[%<migration_version>s]
2
2
  def change
3
- remove_index nil, name: '%<index_name>s'
3
+ remove_index '%<table_name>s', name: '%<index_name>s'
4
4
  end
5
5
  end
@@ -28,11 +28,16 @@ module DatabaseConsistency
28
28
  end
29
29
 
30
30
  def writer(report)
31
- klass = begin
32
- "DatabaseConsistency::Writers::Simple::#{report.error_slug.to_s.classify}".constantize
33
- rescue NameError
34
- Simple::DefaultMessage
35
- end
31
+ klass =
32
+ if report.error_slug
33
+ begin
34
+ "DatabaseConsistency::Writers::Simple::#{report.error_slug.to_s.classify}".constantize
35
+ rescue NameError
36
+ Simple::DefaultMessage
37
+ end
38
+ else
39
+ Simple::DefaultMessage
40
+ end
36
41
 
37
42
  klass.new(report, config: config)
38
43
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: database_consistency
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.1
4
+ version: 2.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Evgeniy Demin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-12-26 00:00:00.000000000 Z
11
+ date: 2025-01-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord