Wait until database connection can be successfully established
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Go to file
CSRBot e0a7a78e34
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
chore(deps): update module github.com/sijms/go-ora/v2 to v2.5.31
1 month ago
cmd fix: update go sums 8 months ago
pkg/dbwait fix(oracle): select 1 from dual 7 months ago
.dockerignore Initial Commit 2 years ago
.drone.yml chore(deps): update dependency docker.io/volkerraschek/markdownlint to v0.33.0 2 months ago
.editorconfig Initial Commit 2 years ago
.gitattributes Initial Commit 2 years ago
.gitignore Initial Commit 2 years ago
.golangci.yml Initial Commit 2 years ago
.markdownlint.yaml Initial Commit 2 years ago
Dockerfile chore(deps): update dependency docker.io/library/alpine to v3.17 3 months ago
LICENSE Initial Commit 2 years ago
Makefile Initial Commit 2 years ago
README.md Initial Commit 2 years ago
go.mod chore(deps): update module github.com/sijms/go-ora/v2 to v2.5.31 1 month ago
go.sum chore(deps): update module github.com/sijms/go-ora/v2 to v2.5.31 1 month ago
main.go fix: update go sums 8 months ago
manifest.tmpl fix(ci): adapt .drone.yml to latest version 1 year ago
renovate.json fix(renovate): enable automerge for droneci manager 1 year ago

README.md

db-wait

Build Status Docker Pulls

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:

# 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 and postgres.

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.

# 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.

# 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