How to fix error "Error: Database is uninitialized and superuser password is not specified." How to fix error "Error: Database is uninitialized and superuser password is not specified." postgresql postgresql

How to fix error "Error: Database is uninitialized and superuser password is not specified."


You can use the POSTGRES_HOST_AUTH_METHOD environment property by making the following change to your docker-compose.yml.

db:    image: postgres:9.6-alpine    environment:      POSTGRES_DB: "db"      POSTGRES_HOST_AUTH_METHOD: "trust"

The above will solve the error.


To avoid that you can specify the followings environments variables for postgres container on your docker-compose file.

POSTGRES_PASSWORDThis environment variable is normally required for you to use the PostgreSQL image. This environment variable sets the superuser password for PostgreSQL. The default superuser is defined by the POSTGRES_USER environment variable.

POSTGRES_DBThis optional environment variable can be used to define a different name for the default database that is created when the image is first started. If it is not specified, then the value of POSTGRES_USER will be used.

For more information about Environment Variables check:https://hub.docker.com/_/postgres


It's already mentioned in the interactive mode; how to run the container, if you don't find it, use the following:

To allow all connections without a password use:

  • docker run -e POSTGRES_HOST_AUTH_METHOD=trust postgres:9.6 (use the tag you need).

To specify postgres password for the superuser, use:

  • docker run -e POSTGRES_PASSWORD=<your_password> postgres:9.6 (use the tag you need).