簡體   English   中英

使用帶有[template],[encoding],[owner]和.sql文件的批處理文件創建Postgres數據庫

[英]Create Postgres database using batch file with [template],[encoding],[owner] and a .sql file

我想使用批處理文件創建Postgres數據庫。 現在這樣做的正常方法如下:

“C:\\ Program Files \\ PostgreSQL \\ 9.0 \\ bin \\ createdb.exe”-U Myadmin MydatAbseName

上面的腳本使用默認數據庫參數創建數據庫。 但是,我想創建一個包含以下參數的數據庫,如下所示:

   WITH OWNER = Myadmin 
   TEMPLATE = template0 
   ENCODING = 'SQL_ASCII'
   TABLESPACE = pg_default
   LC_COLLATE = 'C'
   LC_CTYPE = 'C'
   CONNECTION LIMIT = -1;

請告訴我如何使用批處理文件使用上述參數創建數據庫。

另請告訴我如何使用.sql文件執行相同操作,例如此命令行:

"C:\Program Files\PostgreSQL\9.0\bin\createdb.exe" -U Myadmin -f C:\createDB.sql;

客戶端程序createdb不支持所有這些選項。
創建文件db_create.sql

CREATE DATABASE MydatAbseName
   WITH OWNER myadmin 
   TEMPLATE template0
   ENCODING 'SQL_ASCII'
   TABLESPACE  pg_default
   LC_COLLATE  'C'
   LC_CTYPE  'C'
   CONNECTION LIMIT  -1;

稱它為:

psql -U postgres postgres -f C:/path/to/db_create.sql

這里的技巧是連接到默認維護db“postgres”並從那里創建新數據庫。 我在我的示例中使用名為“postgres”的默認超級用戶執行此操作。
psql -f執行給定文件中的SQL命令。

您也可以使用psql -c執行單個命令(不涉及文件):

psql -U postgres postgres -c "CREATE DATABASE MydatAbseName WITH OWNER Myadmin
EMPLATE template ENCODING 'SQL_ASCII' TABLESPACE  pg_default LC_COLLATE  'C'
LC_CTYPE  C' CONNECTION LIMIT  -1"

有關在此處此處的精細手冊中創建數據庫的更多信息
更多關於psql


在Windows上,它看起來像這樣:

"C:\Program Files\PostgreSQL\verson_number\bin\psql.exe" -U user -f C:/path/to/db_create.sql postgres

最后一個“postgres”是默認維護數據庫的名稱。 如果要在批處理文件中使用它,則必須回答密碼提示或與允許訪問的用戶連接而不提供密碼。 章節中基礎知識本手冊的密碼文件pg_hba.conf文件 更多信息:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM