Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 11e397d

Browse files
committed
Do not try to create databases that already exist
We were already checking for whether `POSTGRES_DB` was set to `postgres`, but this was the underlying motivation for that check (and it turns out that this applies for values of at least `template0` and `template1` as well).
1 parent 3690694 commit 11e397d

13 files changed

+91
-13
lines changed

10/alpine/docker-entrypoint.sh

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

10/docker-entrypoint.sh

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

11/alpine/docker-entrypoint.sh

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

11/docker-entrypoint.sh

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

12/alpine/docker-entrypoint.sh

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

12/docker-entrypoint.sh

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

13/alpine/docker-entrypoint.sh

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

13/docker-entrypoint.sh

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

9.5/alpine/docker-entrypoint.sh

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

9.5/docker-entrypoint.sh

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

0 commit comments

Comments
 (0)