Skip to content

Class HTM::Database

Inherits Object
Defined in lib/htm/database.rb

Database setup and configuration for HTM Handles schema creation and database initialization using Sequel

Public Class Methods

default_config()

Get default database configuration

Uses HTM::Config for database settings. - @return [Hash, nil] Connection configuration hash with PG-style keys

drop(db_url = nil)

Drop all HTM tables (respects RAILS_ENV) - @param db_url [String] Database connection URL (uses default_config if not provided) - @return [void]

dump_schema(db_url = nil)

Dump current database schema to db/schema.sql (respects RAILS_ENV)

Uses pg_dump to create a clean SQL schema file without data - @param db_url [String] Database connection URL (uses default_config if not provided) - @return [void]

generate_docs(db_url = nil)

Generate database documentation using tbls - @param db_url [String] Database connection URL (uses ENV['HTM_DATABASE__URL'] if not provided) - @return [void]

info(db_url = nil)

Show database info (respects RAILS_ENV) - @param db_url [String] Database connection URL (uses default_config if not provided) - @return [void]

load_schema(db_url = nil)

Load schema from db/schema.sql (respects RAILS_ENV)

Uses psql to load the schema file - @param db_url [String] Database connection URL (uses default_config if not provided) - @return [void]

migrate(db_url = nil)

Run pending database migrations - @param db_url [String] Database connection URL (uses ENV['HTM_DATABASE__URL'] if not provided) - @return [void]

migration_status(db_url = nil)

Show migration status - @param db_url [String] Database connection URL (uses ENV['HTM_DATABASE__URL'] if not provided) - @return [void]

parse_connection_params()

Build config from individual environment variables - @return [Hash, nil] Connection configuration hash

parse_connection_url(url)

Parse database connection URL - @param url [String] Connection URL (e.g., postgresql://user:pass@host:port/dbname) - @raise [ArgumentError] If URL format is invalid - @return [Hash, nil] Connection configuration hash

seed(db_url = nil)

Seed database with sample data

Loads and executes db/seeds.rb file following Rails conventions. - @param db_url [String] Database connection URL (uses ENV['HTM_DATABASE__URL'] if not provided) - @return [void]

setup(db_url = nil, run_migrations: true, dump_schema: false)

Set up the HTM database schema - @param db_url [String] Database connection URL (uses ENV['HTM_DATABASE__URL'] if not provided) - @param run_migrations [Boolean] Whether to run migrations (default: true) - @param dump_schema [Boolean] Whether to dump schema to db/schema.sql after setup (default: false) - @return [void]