Add multi-environment support for database configuration
Introduces separate databases and config files for dev, test, and prod environments. The application now defaults to production, with --env flag to specify alternative environments. Changes: - Update config.rs to support env-based loading (config.toml -> config.<env>.toml -> config.example.toml) - Add Env enum (Prod, Dev, Test) with database name mapping - Add --env flag to CLI commands (defaults to prod) - Add 'db setup' command to create database and schema - Split migrations into env-specific database creation and shared schema - Update .gitignore to track config.example.toml but ignore config.toml and config.<env>.toml files - Update config.example.toml as a template with placeholder values - Delete 001_initial_schema.sql, replaced by 002_schema.sql + env-specific files Config loading order: 1. config.toml (local override) 2. config.<env>.toml (environment-specific) 3. config.example.toml (fallback) Database names: - prod: rusty_petroleum - dev: rusty_petroleum_dev - test: rusty_petroleum_test Usage: cargo run -- db setup --env dev # Setup dev database cargo run -- import data.csv --env dev # Import to dev cargo run -- db setup # Setup prod (default) cargo run -- import data.csv # Import to prod (default)
This commit is contained in:
2
migrations/001_test.sql
Normal file
2
migrations/001_test.sql
Normal file
@@ -0,0 +1,2 @@
|
||||
-- Create test database
|
||||
CREATE DATABASE IF NOT EXISTS rusty_petroleum_test;
|
||||
Reference in New Issue
Block a user