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)