PostgreSQL 備份檔是否包含 CREATE SCHEMA?
Copyright Notice: This article is an original work licensed under the CC 4.0 BY-NC-ND license.
If you wish to repost this article, please include the original source link and this copyright notice.
Source link: https://v2know.com/article/1141
在使用 pg_dump
進行資料庫備份時,常見疑問之一是:
➤ 備份出來的 SQL 是否包含
CREATE SCHEMA
?
✅ 答案很簡單:
只要該 schema 不是預設的
public
,pg_dump
就會自動包含CREATE SCHEMA
語句。
🔍 實例說明
假設你有一個名為 admin
的 schema,使用以下指令導出:
pg_dump -U admin -d bks > dump.sql
這個 dump.sql
檔案會包含如下內容:
CREATE SCHEMA admin;
ALTER SCHEMA admin OWNER TO admin;
SET search_path = admin, pg_catalog;
CREATE TABLE ...
...
你 不需要手動重建 schema,還原時這些 SQL 會自動執行。
❗例外:public
schema
如果你的資料都在預設的 public
schema,則不會額外生成 CREATE SCHEMA
,因為它本來就存在。
✅ 小結
Schema 類型 | 是否包含 CREATE SCHEMA |
---|---|
admin 等自訂 |
✅ 會產生 |
public |
❌ 不會產生 |
因此,在撰寫還原工具時,若你有提前 DROP SCHEMA
,通常不需要再手動 CREATE
,因為備份 SQL 已內建這步驟。
This article was last edited at