postgresql - Why can't I extend docker postgres image to create extra database and user -
i'm using docker postgres 9.4.5 images , extendeding using init.sh copied /docker-entrypoint-initdb.d
in docker container. trying create database , non admin user access both $postgres_db
2nd database creating. tried following $postgres_user
user myadmin
, $postgres_db
database mydb1
passed through docker-compose environment:
#!/bin/bash set -e psql -v on_error_stop=1 --username "$postgres_user" <<-eosql create user userx password '$postgres_password'; create database diagnostics; grant privileges on database userx $postgres_db; grant privileges on database userx mydb2; eosql
this gave me error:
postgres_1 | create database postgres_1 | postgres_1 | create role postgres_1 | postgres_1 | postgres_1 | /docker-entrypoint.sh: running /docker-entrypoint-initdb.d/init-user-db.sh postgres_1 | fatal: database "myadmin" not exist postgres_1 | psql: fatal: database "myadmin" not exist docker_postgres_1 exited code 2
i tried --username postgres
, error
error: database "userx" not exist
i tried create database userx: #!/bin/bash set -e
psql -v on_error_stop=1 --username "$postgres_user" <<-eosql create database userx; create user userx password '$postgres_password'; create database diagnostics; grant privileges on database userx $postgres_db; grant privileges on database userx mydb2; eosql
but got:
postgres_1 | create database postgres_1 | error: role "mydb1" not exist postgres_1 | statement: grant privileges on database rwx analytics; postgres_1 | error: role "mydb2" not exist docker_postgres_1 exited code 3
can please help, real blocker me , have no idea how proceed feel should not need creating database userx or roles , or wrong?
your grant syntax not quite right - https://www.postgresql.org/docs/9.0/static/sql-grant.html
in short should that:
grant privileges on yourdbname not user user;
Comments
Post a Comment