Skip to main content

Database Server Manager — Interactive CLI to create and manage database servers via Docker

Project description

DBMS — Database Server Manager

Interactive CLI to create and manage database servers via Docker.

PyPI version Python Docker License


Features

  • Interactive wizard — step-by-step guided setup for new database servers
  • Multi-database support — PostgreSQL, MySQL, MariaDB, SQL Server, Oracle, SQLite
  • Docker-powered — automatically generates and manages docker-compose.yml
  • Port conflict detection — suggests the next available port if the default is taken
  • Persistent state — server registry stored at ~/.dbms/servers.json
  • Rich terminal UI — colored output, progress spinners, and summary tables

Supported Databases

Database Default Port Docker Image
PostgreSQL 5432 postgres
MySQL 3306 mysql
MariaDB 3307 mariadb
SQL Server 1433 mcr.microsoft.com/mssql/server
Oracle 1521 container-registry.oracle.com/database/express
SQLite (no Docker required)

Requirements

  • Python 3.10+
  • Docker with Docker Compose (for all databases except SQLite)

Installation

Recommended — pipx (isolated, always available globally)

pipx installs CLI tools in isolated environments so they don't interfere with other packages:

pipx install dbms-cli

pip

pip install dbms-cli

From source

git clone https://github.com/your-username/dbms.git
cd dbms
pip install .

Usage

Interactive menu (no arguments)

dbms

Launches a guided menu to choose an action.

Commands

dbms create           # Interactive wizard to create a new server
dbms list             # List all registered servers with status
dbms start  <name>    # Start a database server
dbms stop   <name>    # Stop a database server
dbms delete <name>    # Delete a server (stops container + removes files)
dbms status           # Show Docker daemon status and all servers

Walkthrough — Creating a server

$ dbms create

╔══════════════════════════════════════════╗
║    DBMS — Database Server Manager        ║
║            Powered by Docker             ║
╚══════════════════════════════════════════╝

─────────────── Create a new database server ───────────────

? What is your server name? › my-postgres
? Select a database: › PostgreSQL
? [1/4] Docker image version? › 16
? [2/4] Host port? › 5432
? [3/4] Username? › admin
? [4/4] Database name? › my_postgres
? Password? › ••••••••

─────────────────────── Summary ────────────────────────────

  Server name    my-postgres
  Database       PostgreSQL
  Image          postgres:16
  Port           localhost:5432
  Username       admin
  Database name  my_postgres
  Password       ••••••••
  Folder         ./my-postgres/

? Proceed with this configuration? › Yes

✔ Server folder created
✔ docker-compose.yml generated
✔ Configuration saved
✔ Container started

Connection hint:
  psql -h localhost -p 5432 -U admin -d my_postgres

How it works

Each server gets its own subfolder containing a generated docker-compose.yml. Starting and stopping a server runs docker compose up -d / docker compose down inside that folder. All server metadata is tracked in ~/.dbms/servers.json.

SQLite is a special case — no Docker needed, DBMS simply creates a .db file in the server folder.


License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dbms_cli-1.0.0.tar.gz (13.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dbms_cli-1.0.0-py3-none-any.whl (12.1 kB view details)

Uploaded Python 3

File details

Details for the file dbms_cli-1.0.0.tar.gz.

File metadata

  • Download URL: dbms_cli-1.0.0.tar.gz
  • Upload date:
  • Size: 13.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for dbms_cli-1.0.0.tar.gz
Algorithm Hash digest
SHA256 592acf1a372328edc0b7d4a031227b3f9e9be676c0cf74330c371738fcc12861
MD5 f66268f79f1853233d970108bd83bafa
BLAKE2b-256 06d7a322cead267d1218ebeaa1c6ee75a73f987a1489578c82e4db31b40883eb

See more details on using hashes here.

File details

Details for the file dbms_cli-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: dbms_cli-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 12.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for dbms_cli-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 eea3c22e3f98a13e1bb6f73904945db0cbbfd9c5f910c3de9e697d3af221c87d
MD5 22f221353ad472c403ccafe3ad67299d
BLAKE2b-256 82f34eda14a1b95afad9536738a6c7f63550eb4fe44184c8745233d2fc6766a7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page