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]