Class HTM::SequelConfig ¶
| Inherits | Object |
| Defined in | lib/htm/sequel_config.rb |
Sequel database configuration and model loading
Uses HTM::Config for database settings. Configuration can come from: * Environment variables (HTM_DATABASE__URL, HTM_DATABASE__HOST, etc.) * Programmatic configuration via HTM.configure
Sequel is fiber-safe by design, making it ideal for async/fiber-based concurrency patterns used in HTM's job processing.
Attributes¶
db [R] ¶
Database connection instance
- @return [Sequel::Database, nil]
Public Class Methods¶
build_connection_string(config) ¶
Build connection string from config hash
- @param config [Hash] Database configuration
- @return [String] PostgreSQL connection string
connected?() ¶
Check if connection is established and active
- @return [Boolean]
connection_stats() ¶
Get connection pool statistics
- @return [Hash] Pool statistics
disconnect!() ¶
Close all database connections
- @return [void]
ensure_models_loaded!() ¶
Ensure models are loaded
Call this after migrations to ensure models are available
- @return [void]
establish_connection!(load_models: true) ¶
Establish database connection from HTM::Config
- @param load_models [Boolean] Whether to load models after connection (default: true)
Set to false when running migrations on a fresh database
- @return [Sequel::Database] The database connection
execute(sql) ¶
Run raw SQL
- @param sql [String] SQL to execute
- @return [void]
load_database_config() ¶
Load database configuration from HTM::Config
- @return [Hash] Database configuration hash
models_loadable?() ¶
Check if models can be loaded (tables exist)
- @return [Boolean]
select_value(sql) ¶
Select a single value
- @param sql [String] SQL query
- @return [Object] The value
verify_extensions!() ¶
Verify required extensions are available
- @raise [RuntimeError] if required extensions are missing
- @return [true]