Class: ActiveRecord::Materialized::SchemaVerifier
- Inherits:
-
Object
- Object
- ActiveRecord::Materialized::SchemaVerifier
- 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
An unprovisioned cache table is absent, not drifted, so this is a no-op.
Constructor Details
#initialize(view_class) ⇒ SchemaVerifier
Returns a new instance of SchemaVerifier.
11 12 13 |
# File 'lib/activerecord/materialized/schema_verifier.rb', line 11 def initialize(view_class) @view_class = view_class end |
Instance Method Details
#drifted? ⇒ Boolean
26 27 28 29 30 31 |
# File 'lib/activerecord/materialized/schema_verifier.rb', line 26 def drifted? verify! false rescue SchemaDriftError true end |
#verify! ⇒ Object
An unprovisioned cache table is absent, not drifted, so this is a no-op.
16 17 18 19 20 21 22 23 24 |
# File 'lib/activerecord/materialized/schema_verifier.rb', line 16 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 |