database_consistency 2.0.1 → 2.0.3

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: 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