Database Configuration
Overview
Database Configuration Structure
Base Database Configuration
# config/database.yml
database:
# Connection settings
url: <%= ENV["DATABASE_URL"] %>
adapter: <%= ENV["DB_ADAPTER"] || "postgresql" %>
host: <%= ENV["DB_HOST"] || "localhost" %>
port: <%= ENV["DB_PORT"] || 5432 %>
username: <%= ENV["DB_USERNAME"] || "postgres" %>
password: <%= ENV["DB_PASSWORD"] || "" %>
database: <%= ENV["DB_NAME"] || "myapp_development" %>
# Connection pooling
pool_size: <%= ENV["DB_POOL_SIZE"] || 10 %>
pool_timeout: <%= ENV["DB_POOL_TIMEOUT"] || 5000 %>
pool_checkout_timeout: <%= ENV["DB_POOL_CHECKOUT_TIMEOUT"] || 5000 %>
# SSL configuration
ssl_mode: <%= ENV["DB_SSL_MODE"] || "prefer" %>
ssl_cert: <%= ENV["DB_SSL_CERT"] %>
ssl_key: <%= ENV["DB_SSL_KEY"] %>
ssl_ca: <%= ENV["DB_SSL_CA"] %>
# Performance settings
statement_timeout: <%= ENV["DB_STATEMENT_TIMEOUT"] || 30000 %>
idle_in_transaction_timeout: <%= ENV["DB_IDLE_TIMEOUT"] || 30000 %>
# Logging
logging: <%= ENV["DB_LOGGING"] || false %>
log_level: <%= ENV["DB_LOG_LEVEL"] || "info" %>
# Migration settings
migrations:
directory: db/migrations/
table: schema_migrations
lock_timeout: 10000
# Seed configuration
seeds:
directory: db/seeds/
files:
- main_seed.cr
- test_data.crDatabase Adapters
PostgreSQL Configuration
MySQL Configuration
SQLite Configuration
Environment-Specific Configuration
Development Environment
Test Environment
Production Environment
CQL ORM Configuration
Model Configuration
Migration Configuration
Connection Pooling
Pool Configuration
Pool Management
Database Seeding
Seed Configuration
Seed File Example
Database Monitoring
Monitoring Configuration
Monitoring Implementation
Database Commands
Database Management Commands
Configuration Commands
Environment Variables
Database Environment Variables
Best Practices
Configuration Management
Performance
Security
Related Documentation
Last updated