Skip to content

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]