wait-database-cli
CLI tool to wait for MySQL / PostgreSQL server to be up and running
Features
- Supports both MySQL and PostgreSQL databases
- Configurable via command-line flags or environment variables
- Optional query execution after connection is established
- Timeout configuration (default: 10 minutes)
- Support for SOCKS proxy (MySQL only)
Installation
go install github.com/evalphobia/wait-database-cli@latest
Usage
Command Line Flags
-type
: Database type (mysql
or postgresql
, default: mysql
)
-host
: Database host
-port
: Database port (default: 3306 for MySQL, 5432 for PostgreSQL)
-user
: Database user (default: root
for MySQL, postgres
for PostgreSQL)
-password
: Database password
-database
: Database name
-query
: SQL query to execute after connection
Environment Variables
WAIT_DATABASE_TYPE
: Database type
WAIT_DATABASE_HOST
: Database host
WAIT_DATABASE_PORT
: Database port
WAIT_DATABASE_USER
: Database user
WAIT_DATABASE_PASSWORD
: Database password
WAIT_DATABASE_DATABASE
: Database name
WAIT_DATABASE_QUERY
: SQL query to execute
Examples
MySQL
# Using command line flags
wait-database-cli -type mysql -host localhost -port 3306 -user root -password mypassword -database mydb
# Using environment variables
export WAIT_DATABASE_TYPE=mysql
export WAIT_DATABASE_HOST=localhost
export WAIT_DATABASE_USER=root
export WAIT_DATABASE_PASSWORD=mypassword
export WAIT_DATABASE_DATABASE=mydb
wait-database-cli
# With query execution
wait-database-cli -type mysql -host localhost -database mydb -query "SELECT VERSION()"
PostgreSQL
# Using command line flags
wait-database-cli -type postgresql -host localhost -port 5432 -user postgres -password mypassword -database mydb
# Using environment variables
export WAIT_DATABASE_TYPE=postgresql
export WAIT_DATABASE_HOST=localhost
export WAIT_DATABASE_USER=postgres
export WAIT_DATABASE_PASSWORD=mypassword
export WAIT_DATABASE_DATABASE=mydb
wait-database-cli
# With query execution
wait-database-cli -type postgresql -host localhost -database mydb -query "SELECT version()"
Docker
The tool is available as a Docker image:
docker run -e WAIT_DATABASE_TYPE=mysql -e WAIT_DATABASE_HOST=127.0.0.1 -e WAIT_DATABASE_USER=root -e WAIT_DATABASE_PASSWORD=pass --rm evalphobia/wait-database-cli
License
MIT