Postgresql

如何從批處理文件在 Windows 中的 PostgreSQL 10 中創建新數據庫?

  • May 20, 2021

我正在創建一個批處理文件以在 PostgreSQL 10 中創建一個新數據庫。我使用了以下程式碼,

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

但我得到這個錯誤,

psql:致命:數據庫“myDB”不存在

我知道這不是創建新數據庫的命令。我還嘗試了以下程式碼,

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

這是基於此連結中的資訊。“pgpass.conf”文件有以下文本,

本地主機:5432:myDB:postgres:postgres

但它要求輸入密碼。我輸入了預設密碼“postgres”。但這是輸出,

psql:致命:使用者“User1”的密碼驗證失敗

這裡的目標是從批處理文件創建新數據庫而不要求輸入密碼。如何做到這一點?

創建一個bat文件,內容如下並執行:

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

這對我有用。

為我工作的其他方式是:

1.- 創建一個test.bat包含以下內容的文件:

@set PGPASSFILE=D:\bash\Test02.conf
@"C:\Program Files\PostgreSQL\12\bin\"createdb  -U postgres PEDIDOS-2052021141847 

# all in one line

2.- 創建一個test.conf包含以下內容的文件:

*:*:*:postgres:1234
# host:port:database:user:password

3.- 執行.bat文件

引用自:https://dba.stackexchange.com/questions/208231