database_consistency 2.0.0 → 2.0.2

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: 52986b5b93512eecd5adc0b4d37f873664a2ef35eea9b42359a0870f5ecf1c6d
4
- data.tar.gz: fa614ae4aa5e6f1b08fadd0d252e898745e1300aae1e5a65466727a80a41ec38
3
+ metadata.gz: 00b035e08de638007e2b5c13042544597dcdf30a4ea55b1a97dd4e55e16e7a1a
4
+ data.tar.gz: 9c6db1c345e64d271680c0e6effa6c84d72e2a6d4bde388a123f8ca109d157c3
5
5
  SHA512:
6
- metadata.gz: 3d7309cf8351e0a7aac9009a4aac0d299a905f09a8d2238b629c880d9810d959f59ef3f5e0d8ce09e72a30d575c60cd792821acb3b2f51c09f023588a704f5a4
7
- data.tar.gz: 97cb23bf0541dbb7a95fdbbe78e836c5e9f8c52ae99fe25392c378a9b7acc22e9dd7d3020944aa97e17a1679c02a35bbacaf6067b29be5f3f65ce05bc6856c77
6
+ metadata.gz: 9b322ecb69172489a441031d971c5fcdea5e68d6ed6a31486dfe36cbab349f4ffb184970f35b1cf55585398b281b82db0916fb956bc276534f42907f62ae6e32
7
+ data.tar.gz: 22e56221e6711045aaeecedfc305914d8363817c19d376d4a46e89eb3e7d17ad379213e7e07a080ee2f8734679688e9b3d8690f16f5d5097809fae466072472f
@@ -21,7 +21,8 @@ module DatabaseConsistency
21
21
  def preconditions
22
22
  supported? &&
23
23
  association.belongs_to? && !association.polymorphic? &&
24
- same_database?
24
+ same_database? &&
25
+ model.connection.table_exists?(model.table_name)
25
26
  rescue NameError
26
27
  false
27
28
  end
@@ -12,8 +12,9 @@ module DatabaseConsistency
12
12
 
13
13
  private
14
14
 
15
+ # column should be a boolean and table shouldn't be a view
15
16
  def preconditions
16
- column.type == :boolean
17
+ column.type == :boolean && model.connection.table_exists?(model.table_name)
17
18
  end
18
19
 
19
20
  def check
@@ -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
@@ -19,7 +19,7 @@ module DatabaseConsistency
19
19
  end
20
20
 
21
21
  def preconditions
22
- (regular_column || association) && validators.any?
22
+ (regular_column || association) && model.connection.table_exists?(model.table_name) && validators.any?
23
23
  end
24
24
 
25
25
  def report_template(status, column_name:, error_slug: nil)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DatabaseConsistency
4
- VERSION = '2.0.0'
4
+ VERSION = '2.0.2'
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.0
4
+ version: 2.0.2
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-25 00:00:00.000000000 Z
11
+ date: 2024-12-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord