Module: ActiveRecord::Materialized
- Extended by:
- T::Sig
- Defined in:
- lib/activerecord/materialized/module_api.rb,
lib/activerecord/materialized/view.rb,
lib/activerecord/materialized/tasks.rb,
lib/activerecord/materialized/railtie.rb,
lib/activerecord/materialized/version.rb,
lib/activerecord/materialized/metadata.rb,
lib/activerecord/materialized/registry.rb,
lib/activerecord/materialized/cold_read.rb,
lib/activerecord/materialized/refresher.rb,
lib/activerecord/materialized/view_class.rb,
lib/activerecord/materialized/refresh_job.rb,
lib/activerecord/materialized/write_change.rb,
lib/activerecord/materialized/configuration.rb,
lib/activerecord/materialized/summary_delta.rb,
lib/activerecord/materialized/refresh_result.rb,
lib/activerecord/materialized/type_reexports.rb,
lib/activerecord/materialized/async_refresher.rb,
lib/activerecord/materialized/metadata/schema.rb,
lib/activerecord/materialized/metadata_record.rb,
lib/activerecord/materialized/partition_state.rb,
lib/activerecord/materialized/schema_verifier.rb,
lib/activerecord/materialized/view_definition.rb,
lib/activerecord/materialized/delta_maintainer.rb,
lib/activerecord/materialized/partition_record.rb,
lib/activerecord/materialized/maintenance_delta.rb,
lib/activerecord/materialized/maintenance_store.rb,
lib/activerecord/materialized/migration_builder.rb,
lib/activerecord/materialized/query_expressions.rb,
lib/activerecord/materialized/refresh_callbacks.rb,
lib/activerecord/materialized/refresh_scheduler.rb,
lib/activerecord/materialized/aggregate_analysis.rb,
lib/activerecord/materialized/cache_table_schema.rb,
lib/activerecord/materialized/dependency_registry.rb,
lib/activerecord/materialized/metadata/timestamps.rb,
lib/activerecord/materialized/dependency_trackable.rb,
lib/activerecord/materialized/table_model_registry.rb,
lib/activerecord/materialized/relation_cache_writer.rb,
lib/activerecord/materialized/summary_delta_builder.rb,
lib/activerecord/materialized/incremental_maintainer.rb,
lib/activerecord/materialized/maintenance_delta_builder.rb,
lib/activerecord/materialized/metadata/maintenance_payload.rb,
lib/activerecord/materialized/view_incremental_class_methods.rb,
lib/activerecord/materialized/view_query_access_class_methods.rb,
lib/activerecord/materialized/view_configuration_class_methods.rb,
lib/activerecord/materialized/view_refresh_policy_class_methods.rb
Overview
Application-level materialized views for Rails/ActiveRecord on databases without native materialized-view support (MySQL, MariaDB, SQLite).
Define views by subclassing View. This module is the top-level entry point for global configuration and operational helpers such as Materialized.verify_schema!.
Defined Under Namespace
Modules: CacheTableSchema, DependencyTrackable, QueryExpressions, RefreshCallbacks, Tasks, ViewConfigurationClassMethods, ViewIncrementalClassMethods, ViewQueryAccessClassMethods, ViewRefreshPolicyClassMethods
Classes: AggregateAnalysis, AsyncRefresher, ColdRead, Configuration, DeltaMaintainer, DependencyRegistry, IncrementalMaintainer, MaintenanceDelta, MaintenanceDeltaBuilder, MaintenanceStore, Metadata, MetadataRecord, MigrationBuilder, NotMaterializedError, PartitionRecord, PartitionState, Railtie, RefreshJob, RefreshResult, RefreshScheduler, Refresher, Registry, RelationCacheWriter, SchemaVerifier, SummaryDelta, SummaryDeltaBuilder, TableModelRegistry, View, ViewDefinition, WriteChange
Constant Summary
collapse
- VERSION =
"0.1.1"
- ViewClass =
T.type_alias { T.class_of(View) }
- DebounceInterval =
T.type_alias { ::ActiveRecordMaterializedTypes::DebounceInterval }
- StalenessDuration =
T.type_alias { ::ActiveRecordMaterializedTypes::StalenessDuration }
- SourceDefinition =
T.type_alias { ::ActiveRecordMaterializedTypes::SourceDefinition }
- RefreshMode =
T.type_alias { ::ActiveRecordMaterializedTypes::RefreshMode }
- RefreshCallbackName =
T.type_alias { ::ActiveRecordMaterializedTypes::RefreshCallbackName }
- Connection =
T.type_alias { ::ActiveRecordMaterializedTypes::Connection }
- Timestamp =
T.type_alias { ::ActiveRecordMaterializedTypes::Timestamp }
Class Method Summary
collapse
Class Method Details
.atomic_swap_refresh? ⇒ Boolean
72
73
74
|
# File 'lib/activerecord/materialized/module_api.rb', line 72
def atomic_swap_refresh?
configuration.atomic_swap_refresh
end
|
.configuration ⇒ Object
24
25
26
27
28
29
30
31
|
# File 'lib/activerecord/materialized/module_api.rb', line 24
def configuration
config = @configuration
if config.nil?
config = Configuration.new
@configuration = T.let(config, T.nilable(Configuration))
end
config
end
|
.configuration=(value) ⇒ Object
77
78
79
|
# File 'lib/activerecord/materialized/module_api.rb', line 77
def configuration=(value)
@configuration = T.let(value, T.nilable(Configuration))
end
|
45
46
47
|
# File 'lib/activerecord/materialized/module_api.rb', line 45
def configure(&block)
yield(configuration)
end
|
50
51
52
|
# File 'lib/activerecord/materialized/module_api.rb', line 50
def metadata_table_name
configuration.metadata_table_name
end
|
.partition_table_name ⇒ Object
55
56
57
|
# File 'lib/activerecord/materialized/module_api.rb', line 55
def partition_table_name
configuration.partition_table_name
end
|
.verify_schema! ⇒ Object
66
67
68
69
|
# File 'lib/activerecord/materialized/module_api.rb', line 66
def verify_schema!
registered = Registry.all
registered.each { |view_class| SchemaVerifier.new(view_class).verify! }
end
|