PostgreSQL 備份檔是否包含 CREATE SCHEMA?

| SQL | 1 Reads

在使用 pg_dump 進行資料庫備份時,常見疑問之一是:

➤ 備份出來的 SQL 是否包含 CREATE SCHEMA

✅ 答案很簡單:

只要該 schema 不是預設的 publicpg_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