Class: ActiveRecord::Materialized::SchemaVerifier
- Inherits:
-
Object
- Object
- ActiveRecord::Materialized::SchemaVerifier
- Extended by:
- T::Sig
- Defined in:
- lib/activerecord/materialized/schema_verifier.rb
Overview
Raises when a provisioned cache table no longer matches the columns its source relation projects (drift); never alters the table or rebuilds data.
Defined Under Namespace
Classes: SchemaDriftError
Instance Method Summary collapse
- #drifted? ⇒ Boolean
-
#initialize(view_class) ⇒ SchemaVerifier
constructor
A new instance of SchemaVerifier.
- #verify! ⇒ Object
Constructor Details
#initialize(view_class) ⇒ SchemaVerifier
Returns a new instance of SchemaVerifier.
15 16 17 |
# File 'lib/activerecord/materialized/schema_verifier.rb', line 15 def initialize(view_class) @view_class = view_class end |
Instance Method Details
#drifted? ⇒ Boolean
32 33 34 35 36 37 |
# File 'lib/activerecord/materialized/schema_verifier.rb', line 32 def drifted? verify! false rescue SchemaDriftError true end |
#verify! ⇒ Object
21 22 23 24 25 26 27 28 29 |
# File 'lib/activerecord/materialized/schema_verifier.rb', line 21 def verify! return unless @view_class.table_exists? missing = expected_columns - actual_columns extra = actual_columns - expected_columns return if missing.empty? && extra.empty? Kernel.raise SchemaDriftError, (missing, extra) end |