![](/img/trans.png)
[英]How to create an sql dump file of a Postgres database using psql
[英]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.