Skip to content

Commit 03e7695

Browse files
authored
Merge pull request #801 from infosiftr/db-exists
Do not try to create databases that already exist
2 parents eaeb73d + 11e397d commit 03e7695

13 files changed

+91
-13
lines changed

Diff for: 10/alpine/docker-entrypoint.sh

+7-1
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,13 @@ docker_process_sql() {
189189
# create initial database
190190
# uses environment variables for input: POSTGRES_DB
191191
docker_setup_db() {
192-
if [ "$POSTGRES_DB" != 'postgres' ]; then
192+
local dbAlreadyExists
193+
dbAlreadyExists="$(
194+
POSTGRES_DB= docker_process_sql --dbname postgres --set db="$POSTGRES_DB" --tuples-only <<-'EOSQL'
195+
SELECT 1 FROM pg_database WHERE datname = :'db' ;
196+
EOSQL
197+
)"
198+
if [ -z "$dbAlreadyExists" ]; then
193199
POSTGRES_DB= docker_process_sql --dbname postgres --set db="$POSTGRES_DB" <<-'EOSQL'
194200
CREATE DATABASE :"db" ;
195201
EOSQL

Diff for: 10/docker-entrypoint.sh

+7-1
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,13 @@ docker_process_sql() {
189189
# create initial database
190190
# uses environment variables for input: POSTGRES_DB
191191
docker_setup_db() {
192-
if [ "$POSTGRES_DB" != 'postgres' ]; then
192+
local dbAlreadyExists
193+
dbAlreadyExists="$(
194+
POSTGRES_DB= docker_process_sql --dbname postgres --set db="$POSTGRES_DB" --tuples-only <<-'EOSQL'
195+
SELECT 1 FROM pg_database WHERE datname = :'db' ;
196+
EOSQL
197+
)"
198+
if [ -z "$dbAlreadyExists" ]; then
193199
POSTGRES_DB= docker_process_sql --dbname postgres --set db="$POSTGRES_DB" <<-'EOSQL'
194200
CREATE DATABASE :"db" ;
195201
EOSQL

Diff for: 11/alpine/docker-entrypoint.sh

+7-1
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,13 @@ docker_process_sql() {
189189
# create initial database
190190
# uses environment variables for input: POSTGRES_DB
191191
docker_setup_db() {
192-
if [ "$POSTGRES_DB" != 'postgres' ]; then
192+
local dbAlreadyExists
193+
dbAlreadyExists="$(
194+
POSTGRES_DB= docker_process_sql --dbname postgres --set db="$POSTGRES_DB" --tuples-only <<-'EOSQL'
195+
SELECT 1 FROM pg_database WHERE datname = :'db' ;
196+
EOSQL
197+
)"
198+
if [ -z "$dbAlreadyExists" ]; then
193199
POSTGRES_DB= docker_process_sql --dbname postgres --set db="$POSTGRES_DB" <<-'EOSQL'
194200
CREATE DATABASE :"db" ;
195201
EOSQL

Diff for: 11/docker-entrypoint.sh

+7-1
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,13 @@ docker_process_sql() {
189189
# create initial database
190190
# uses environment variables for input: POSTGRES_DB
191191
docker_setup_db() {
192-
if [ "$POSTGRES_DB" != 'postgres' ]; then
192+
local dbAlreadyExists
193+
dbAlreadyExists="$(
194+
POSTGRES_DB= docker_process_sql --dbname postgres --set db="$POSTGRES_DB" --tuples-only <<-'EOSQL'
195+
SELECT 1 FROM pg_database WHERE datname = :'db' ;
196+
EOSQL
197+
)"
198+
if [ -z "$dbAlreadyExists" ]; then
193199
POSTGRES_DB= docker_process_sql --dbname postgres --set db="$POSTGRES_DB" <<-'EOSQL'
194200
CREATE DATABASE :"db" ;
195201
EOSQL

Diff for: 12/alpine/docker-entrypoint.sh

+7-1
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,13 @@ docker_process_sql() {
189189
# create initial database
190190
# uses environment variables for input: POSTGRES_DB
191191
docker_setup_db() {
192-
if [ "$POSTGRES_DB" != 'postgres' ]; then
192+
local dbAlreadyExists
193+
dbAlreadyExists="$(
194+
POSTGRES_DB= docker_process_sql --dbname postgres --set db="$POSTGRES_DB" --tuples-only <<-'EOSQL'
195+
SELECT 1 FROM pg_database WHERE datname = :'db' ;
196+
EOSQL
197+
)"
198+
if [ -z "$dbAlreadyExists" ]; then
193199
POSTGRES_DB= docker_process_sql --dbname postgres --set db="$POSTGRES_DB" <<-'EOSQL'
194200
CREATE DATABASE :"db" ;
195201
EOSQL

Diff for: 12/docker-entrypoint.sh

+7-1
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,13 @@ docker_process_sql() {
189189
# create initial database
190190
# uses environment variables for input: POSTGRES_DB
191191
docker_setup_db() {
192-
if [ "$POSTGRES_DB" != 'postgres' ]; then
192+
local dbAlreadyExists
193+
dbAlreadyExists="$(
194+
POSTGRES_DB= docker_process_sql --dbname postgres --set db="$POSTGRES_DB" --tuples-only <<-'EOSQL'
195+
SELECT 1 FROM pg_database WHERE datname = :'db' ;
196+
EOSQL
197+
)"
198+
if [ -z "$dbAlreadyExists" ]; then
193199
POSTGRES_DB= docker_process_sql --dbname postgres --set db="$POSTGRES_DB" <<-'EOSQL'
194200
CREATE DATABASE :"db" ;
195201
EOSQL

Diff for: 13/alpine/docker-entrypoint.sh

+7-1
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,13 @@ docker_process_sql() {
189189
# create initial database
190190
# uses environment variables for input: POSTGRES_DB
191191
docker_setup_db() {
192-
if [ "$POSTGRES_DB" != 'postgres' ]; then
192+
local dbAlreadyExists
193+
dbAlreadyExists="$(
194+
POSTGRES_DB= docker_process_sql --dbname postgres --set db="$POSTGRES_DB" --tuples-only <<-'EOSQL'
195+
SELECT 1 FROM pg_database WHERE datname = :'db' ;
196+
EOSQL
197+
)"
198+
if [ -z "$dbAlreadyExists" ]; then
193199
POSTGRES_DB= docker_process_sql --dbname postgres --set db="$POSTGRES_DB" <<-'EOSQL'
194200
CREATE DATABASE :"db" ;
195201
EOSQL

Diff for: 13/docker-entrypoint.sh

+7-1
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,13 @@ docker_process_sql() {
189189
# create initial database
190190
# uses environment variables for input: POSTGRES_DB
191191
docker_setup_db() {
192-
if [ "$POSTGRES_DB" != 'postgres' ]; then
192+
local dbAlreadyExists
193+
dbAlreadyExists="$(
194+
POSTGRES_DB= docker_process_sql --dbname postgres --set db="$POSTGRES_DB" --tuples-only <<-'EOSQL'
195+
SELECT 1 FROM pg_database WHERE datname = :'db' ;
196+
EOSQL
197+
)"
198+
if [ -z "$dbAlreadyExists" ]; then
193199
POSTGRES_DB= docker_process_sql --dbname postgres --set db="$POSTGRES_DB" <<-'EOSQL'
194200
CREATE DATABASE :"db" ;
195201
EOSQL

Diff for: 9.5/alpine/docker-entrypoint.sh

+7-1
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,13 @@ docker_process_sql() {
189189
# create initial database
190190
# uses environment variables for input: POSTGRES_DB
191191
docker_setup_db() {
192-
if [ "$POSTGRES_DB" != 'postgres' ]; then
192+
local dbAlreadyExists
193+
dbAlreadyExists="$(
194+
POSTGRES_DB= docker_process_sql --dbname postgres --set db="$POSTGRES_DB" --tuples-only <<-'EOSQL'
195+
SELECT 1 FROM pg_database WHERE datname = :'db' ;
196+
EOSQL
197+
)"
198+
if [ -z "$dbAlreadyExists" ]; then
193199
POSTGRES_DB= docker_process_sql --dbname postgres --set db="$POSTGRES_DB" <<-'EOSQL'
194200
CREATE DATABASE :"db" ;
195201
EOSQL

Diff for: 9.5/docker-entrypoint.sh

+7-1
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,13 @@ docker_process_sql() {
189189
# create initial database
190190
# uses environment variables for input: POSTGRES_DB
191191
docker_setup_db() {
192-
if [ "$POSTGRES_DB" != 'postgres' ]; then
192+
local dbAlreadyExists
193+
dbAlreadyExists="$(
194+
POSTGRES_DB= docker_process_sql --dbname postgres --set db="$POSTGRES_DB" --tuples-only <<-'EOSQL'
195+
SELECT 1 FROM pg_database WHERE datname = :'db' ;
196+
EOSQL
197+
)"
198+
if [ -z "$dbAlreadyExists" ]; then
193199
POSTGRES_DB= docker_process_sql --dbname postgres --set db="$POSTGRES_DB" <<-'EOSQL'
194200
CREATE DATABASE :"db" ;
195201
EOSQL

Diff for: 9.6/alpine/docker-entrypoint.sh

+7-1
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,13 @@ docker_process_sql() {
189189
# create initial database
190190
# uses environment variables for input: POSTGRES_DB
191191
docker_setup_db() {
192-
if [ "$POSTGRES_DB" != 'postgres' ]; then
192+
local dbAlreadyExists
193+
dbAlreadyExists="$(
194+
POSTGRES_DB= docker_process_sql --dbname postgres --set db="$POSTGRES_DB" --tuples-only <<-'EOSQL'
195+
SELECT 1 FROM pg_database WHERE datname = :'db' ;
196+
EOSQL
197+
)"
198+
if [ -z "$dbAlreadyExists" ]; then
193199
POSTGRES_DB= docker_process_sql --dbname postgres --set db="$POSTGRES_DB" <<-'EOSQL'
194200
CREATE DATABASE :"db" ;
195201
EOSQL

Diff for: 9.6/docker-entrypoint.sh

+7-1
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,13 @@ docker_process_sql() {
189189
# create initial database
190190
# uses environment variables for input: POSTGRES_DB
191191
docker_setup_db() {
192-
if [ "$POSTGRES_DB" != 'postgres' ]; then
192+
local dbAlreadyExists
193+
dbAlreadyExists="$(
194+
POSTGRES_DB= docker_process_sql --dbname postgres --set db="$POSTGRES_DB" --tuples-only <<-'EOSQL'
195+
SELECT 1 FROM pg_database WHERE datname = :'db' ;
196+
EOSQL
197+
)"
198+
if [ -z "$dbAlreadyExists" ]; then
193199
POSTGRES_DB= docker_process_sql --dbname postgres --set db="$POSTGRES_DB" <<-'EOSQL'
194200
CREATE DATABASE :"db" ;
195201
EOSQL

Diff for: docker-entrypoint.sh

+7-1
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,13 @@ docker_process_sql() {
189189
# create initial database
190190
# uses environment variables for input: POSTGRES_DB
191191
docker_setup_db() {
192-
if [ "$POSTGRES_DB" != 'postgres' ]; then
192+
local dbAlreadyExists
193+
dbAlreadyExists="$(
194+
POSTGRES_DB= docker_process_sql --dbname postgres --set db="$POSTGRES_DB" --tuples-only <<-'EOSQL'
195+
SELECT 1 FROM pg_database WHERE datname = :'db' ;
196+
EOSQL
197+
)"
198+
if [ -z "$dbAlreadyExists" ]; then
193199
POSTGRES_DB= docker_process_sql --dbname postgres --set db="$POSTGRES_DB" <<-'EOSQL'
194200
CREATE DATABASE :"db" ;
195201
EOSQL

0 commit comments

Comments
 (0)