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]