Postgres数据库创建脚本不起作用

时间:2018-12-03 19:21:55

标签: postgresql docker-compose

我试图在运行数据库服务时运行一个简单的脚本,以便像这样创建用户和数据库:

#!/bin/bash

set -o errexit

psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" <<-EOSQL
    CREATE USER $DB_USER WITH PASSWORD '$DB_PASSWORD';
    CREATE DATABASE $DB_NAME;
    GRANT ALL PRIVILEGES ON DATABASE $DB_NAME TO $DB_USER;
EOSQL

"$@"

我正在使用env_file将变量传递给docker-compose中的文件,如下所示:

# #################
#    DATABASE
# #################

DB_USER='john'

DB_NAME='job_database1'

DB_PASSWORD=''

POSTGRES_USER='postgres'

POSTGRES_PASSWORD=''

POSTGRES_HOST='127.0.0.1'

我得到的不是非常有用的错误,我倾向于认为变量没有通过?我也曾尝试将它们放置在其他地方,但收效甚微。这是错误:

POSTGRES ERROR

所以当我尝试建立项目时,我得到了:

postgres_database | 2018-12-03 19:00:42.217 UTC [32] FATAL:  role "'john'" does not exist

所以我想暗示在这里做什么。

0 个答案:

没有答案