Files
db-wait/README.md
Markus Pesch 0a145a3ec3
All checks were successful
Lint Golang files / Run golang CI linter (stable, ubuntu-latest-amd64) (push) Successful in 28s
Run Golang tests / Run unit tests (stable, ubuntu-latest-amd64) (push) Successful in 8s
Lint Markdown files / Run markdown linter (push) Successful in 5s
Update Docker Hub Description / update-description-on-hub-docker-io (push) Successful in 5s
Lint Golang files / Run golang CI linter (stable, ubuntu-latest-arm64) (push) Successful in 1m8s
Run Golang tests / Run unit tests (stable, ubuntu-latest-arm64) (push) Successful in 23s
docs(README): add badge from ArtifactHub
2026-05-03 21:42:51 +02:00

61 lines
2.1 KiB
Markdown

# db-wait
[![Artifact Hub](https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/db-wait)](https://artifacthub.io/packages/search?repo=db-wait)
[![Docker Pulls](https://img.shields.io/docker/pulls/volkerraschek/db-wait)](https://hub.docker.com/r/volkerraschek/db-wait)
With `db-wait` is it possible to wait in CI/CD environments until a database connection can be established and SQL
queries are possible.
This is very useful for example when a database is started for an integration test and it needs time to start and
initialize all schemes before the test connects to it.
## Usage
As argument db-wait expects a database URI. This can be different depending on the backend. Currently only oracle and
postgres are supported. The supported URI patterns can be found in the respective library or directly in the
documentation of the database backend.
For example:
```bash
# postgres
db-wait postgres://user:password@localhost:5432/postgres?sslmode=disable
# oracle
db-wait oracle://user:password@localhost:1521/xe
```
More about URI Pattern is documented here for
[oracle](https://godror.github.io/godror/doc/connection.html#-connection-strings) and
[postgres](https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNSTRING).
## Installation
There are two ways to install `db-wait`. Directly via `go` or via `make` in combination with `git` and `go`. The
advantage of the second option is that the binary is installed with all the additional files that the developer
specifies.
```bash
# go
$ go install git.cryptic.systems/volker.raschek/db-wait
# git, make, go
$ git clone https://git.cryptic.systems/volker.raschek/db-wait.git && \
cd db-wait && \
make install PREFIX=/usr
```
## Usage as container image
Alternatively can be `db-wait` used as container image. A local installation is not necessary.
```bash
# postgres
$ docker run --rm --network host git.cryptic.systems/volker.raschek/db-wait:latest \
postgres://user:password@localhost:5432/postgres?sslmode=disable
# oracle
$ docker run --rm --network host git.cryptic.systems/volker.raschek/db-wait:latest \
oracle://user:password@localhost:1521/xe
```