65 lines
2.1 KiB
Markdown
65 lines
2.1 KiB
Markdown
|
# db-wait
|
||
|
|
||
|
[![Build Status](https://drone.cryptic.systems/api/badges/volker.raschek/db-wait/status.svg)](https://drone.cryptic.systems/volker.raschek/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 docker.io/volkerraschek/db-wait:latest \
|
||
|
postgres://user:password@localhost:5432/postgres?sslmode=disable
|
||
|
|
||
|
# oracle
|
||
|
$ docker run --rm --network host docker.io/volkerraschek/db-wait:latest \
|
||
|
oracle://user:password@localhost:1521/xe
|
||
|
```
|