Postgresql – How to create a new database in PostgreSQL 10 in Windows from batch file

command linepostgresqlpostgresql-10windows

I am creating a batch file to create a new database in PostgreSQL 10. I used the following code,

echo off
cd "C:\Program Files (x86)\PostgreSQL\10\bin"
psql "dbname=myDB host=localhost user=postgres password=postgres port=5432"
pause

But I get this error,

psql: FATAL: database "myDB" does not exist

I understand this is not the command to create a new database. I also tried the following code,

echo off
cd "C:\Program Files (x86)\PostgreSQL\10\bin"
psql "createdb myDB passfile %APPDATA%\postgresql\pgpass.conf"
pause

This is based on the information in this link. The "pgpass.conf" file has the follwoing text,

localhost:5432:myDB:postgres:postgres

But it asks to enter password. I entered the default password "postgres". But this was the output,

psql: FATAL: password authentication failed for user "User1"

The objective here is to create new database from the batch file without asking for password. How to achieve this?

Best Answer

Create a bat file with the following content and execute it:

c:\path\to\postgresql\bin\psql.exe -f C:\path\to\db_create.sql  postgresql://user:password@localhost:port/postgres

This is what worked for me.