Skip to content

Class: HTM::Database

Inherits: Object

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

Class Methods

default_config()

Get default database configuration (respects RAILS_ENV)

Uses ActiveRecordConfig which reads from config/database.yml and respects RAILS_ENV for environment-specific database selection. @return [Hash, nil] Connection configuration hash with PG-style keys

drop(db_url nil)

Drop all HTM tables (respects RAILS_ENV) @param [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 [String] Database connection URL (uses default_config if not provided)

@return [void]

generate_docs(db_url nil)

Generate database documentation using tbls

Uses .tbls.yml configuration file for output directory and settings. Creates comprehensive database documentation including: * Entity-relationship diagrams * Table schemas with comments * Index information * Relationship diagrams @param [String] Database connection URL (uses ENV['HTM_DBURL'] if not provided)

@return [void]

info(db_url nil)

Show database info (respects RAILS_ENV) @param [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 [String] Database connection URL (uses default_config if not provided)

@return [void]

migrate(db_url nil)

Run pending database migrations @param [String] Database connection URL (uses ENV['HTM_DBURL'] if not provided)

@return [void]

migration_status(db_url nil)

Show migration status @param [String] Database connection URL (uses ENV['HTM_DBURL'] 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 [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. All seeding logic is contained in db/seeds.rb and reads data from markdown files in db/seed_data/ directory. @param [String] Database connection URL (uses ENV['HTM_DBURL'] if not provided)

@return [void]

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

Set up the HTM database schema @param [String] Database connection URL (uses ENV['HTM_DBURL'] if not provided)

@param [Boolean] Whether to run migrations (default: true)

@param [Boolean] Whether to dump schema to db/schema.sql after setup (default: false)

@return [void]