Module: DatabaseConsistency

Defined in:
lib/database_consistency.rb,
lib/database_consistency/errors.rb,
lib/database_consistency/helper.rb,
lib/database_consistency/report.rb,
lib/database_consistency/version.rb,
lib/database_consistency/rescue_error.rb,
lib/database_consistency/configuration.rb,
lib/database_consistency/report_builder.rb,
lib/database_consistency/databases/factory.rb,
lib/database_consistency/writers/base_writer.rb,
lib/database_consistency/writers/simple/base.rb,
lib/database_consistency/writers/todo_writer.rb,
lib/database_consistency/databases/types/base.rb,
lib/database_consistency/writers/autofix/base.rb,
lib/database_consistency/checkers/base_checker.rb,
lib/database_consistency/writers/simple_writer.rb,
lib/database_consistency/databases/types/sqlite.rb,
lib/database_consistency/writers/autofix_writer.rb,
lib/database_consistency/processors/base_processor.rb,
lib/database_consistency/processors/columns_processor.rb,
lib/database_consistency/processors/indexes_processor.rb,
lib/database_consistency/writers/simple/possible_null.rb,
lib/database_consistency/writers/autofix/migration_base.rb,
lib/database_consistency/writers/simple/default_message.rb,
lib/database_consistency/writers/simple/redundant_index.rb,
lib/database_consistency/processors/validators_processor.rb,
lib/database_consistency/writers/autofix/redundant_index.rb,
lib/database_consistency/writers/simple/small_primary_key.rb,
lib/database_consistency/processors/associations_processor.rb,
lib/database_consistency/writers/autofix/helpers/migration.rb,
lib/database_consistency/writers/simple/inconsistent_types.rb,
lib/database_consistency/writers/autofix/inconsistent_types.rb,
lib/database_consistency/writers/simple/missing_foreign_key.rb,
lib/database_consistency/writers/autofix/missing_foreign_key.rb,
lib/database_consistency/writers/simple/missing_unique_index.rb,
lib/database_consistency/checkers/index_checkers/index_checker.rb,
lib/database_consistency/writers/simple/redundant_unique_index.rb,
lib/database_consistency/writers/simple/null_constraint_missing.rb,
lib/database_consistency/checkers/column_checkers/column_checker.rb,
lib/database_consistency/writers/autofix/null_constraint_missing.rb,
lib/database_consistency/writers/simple/length_validator_missing.rb,
lib/database_consistency/writers/simple/association_missing_index.rb,
lib/database_consistency/processors/validators_fractions_processor.rb,
lib/database_consistency/writers/autofix/association_missing_index.rb,
lib/database_consistency/writers/simple/has_one_missing_unique_index.rb,
lib/database_consistency/writers/simple/length_validator_lower_limit.rb,
lib/database_consistency/checkers/index_checkers/unique_index_checker.rb,
lib/database_consistency/writers/autofix/has_one_missing_unique_index.rb,
lib/database_consistency/writers/simple/missing_uniqueness_validation.rb,
lib/database_consistency/checkers/validator_checkers/validator_checker.rb,
lib/database_consistency/writers/simple/length_validator_greater_limit.rb,
lib/database_consistency/checkers/index_checkers/redundant_index_checker.rb,
lib/database_consistency/writers/simple/null_constraint_misses_validator.rb,
lib/database_consistency/checkers/column_checkers/null_constraint_checker.rb,
lib/database_consistency/checkers/association_checkers/association_checker.rb,
lib/database_consistency/checkers/association_checkers/foreign_key_checker.rb,
lib/database_consistency/checkers/column_checkers/primary_key_type_checker.rb,
lib/database_consistency/checkers/column_checkers/length_constraint_checker.rb,
lib/database_consistency/writers/simple/association_missing_null_constraint.rb,
lib/database_consistency/checkers/association_checkers/missing_index_checker.rb,
lib/database_consistency/checkers/association_checkers/foreign_key_type_checker.rb,
lib/database_consistency/checkers/index_checkers/redundant_unique_index_checker.rb,
lib/database_consistency/checkers/validator_checkers/missing_unique_index_checker.rb,
lib/database_consistency/writers/simple/null_constraint_association_misses_validator.rb,
lib/database_consistency/checkers/validators_fraction_checkers/column_presence_checker.rb,
lib/database_consistency/checkers/validators_fraction_checkers/validators_fraction_checker.rb

Overview

The root module

Defined Under Namespace

Modules: Checkers, Databases, Errors, Helper, Processors, Writers Classes: Configuration, ReportBuilder, RescueError

Constant Summary collapse

Report =
ReportBuilder.define(
  Class.new,
  :checker_name,
  :table_or_model_name,
  :column_or_attribute_name,
  :status,
  :error_slug,
  :error_message
)
VERSION =
'1.3.7'

Class Method Summary collapse

Class Method Details

.run(*args, **opts) ⇒ Object

rubocop:disable Metrics/MethodLength



85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
# File 'lib/database_consistency.rb', line 85

def run(*args, **opts) # rubocop:disable Metrics/MethodLength
  configuration = Configuration.new(*args)
  reports = Processors.reports(configuration)

  if opts[:autofix]
    Writers::AutofixWriter.write(reports, config: configuration)

    0
  elsif opts[:todo]
    Writers::TodoWriter.write(reports, config: configuration)

    0
  else
    Writers::SimpleWriter.write(reports, config: configuration)

    reports.any? { |report| report.status == :fail } || !RescueError.empty? ? 1 : 0
  end
end