----在日文版Windows10上----
首先,以管理員身份打開PowerShell
執行命令:
$env:PGCLIENTENCODING = "UTF8"
這是因爲,
在windows上用powershell上執行dump文件之前,得先切換語言環境。
因爲日文版作業系統默認好像是shift-js。
psql -U [用戶名] -d [數據庫名]
我們假設有一個用戶叫admin,它下面有一堆數據庫和視圖。
drop schema admin cascade;
DROP SCHEMA admin CASCADE; 是一條 SQL 命令,用於從 PostgreSQL 數據庫中刪除名為 admin 的模式(schema),以及該模式下的所有對象(如表、視圖、函數、索引等)。
具體來說:
- DROP SCHEMA admin:指示要刪除名為 admin 的模式。
- CASCADE:這個關鍵字告訴 PostgreSQL 也要刪除與這個模式相關的所有對象。如果不使用 CASCADE,而該模式下存在對象,刪除操作將會失敗。
例如,假設 admin 模式中有數個表和視圖,這個命令將會刪除 admin 模式以及其中的所有表和視圖。
需要注意的是,這是一個不可逆的操作,執行後無法恢復被刪除的模式和對象,所以在執行這條命令之前,務必確認不再需要這些數據,或已經做好了備份。
接著我們,給admin用戶裝上新的數據庫
\i D:/workspace/DataBase/20240718.dump;
注意,切換到UTF-8的環境后,使用左斜杠的符號來表示路徑。
\i,右斜杠i的這個應當保留。注意日文系統裏面打出的右斜杠是\。
這個操作不需要commit;但如果你不放心也可以commit一下。
然後,需要解釋的是,這個操作只面向需要快速刪除和更新數據庫的新手。**(僅供參考)
----在Red Hat Enterprise Linux 9.2上----
su - postgres
psql -U [用戶名] -d [數據庫名]
drop schema [用戶名] cascade;
\i /var/lib/pgsql/[數據庫名].dump;
\i 後面跟的你dump文件所在的路徑,通常我們把dump文件放在該路徑。*(你可能需要WINSCP把文件複製到這裏)
整個操作流程,無非是少了切換語言環境utf-8,因爲REHL9.2默認就是utf-8。
而最開始的做出切換用戶的動作,主要是統一性的問題。
一般來講,我們在Linux使用PostgreSQL時習慣性創建一個系統用戶postgres來管理數據庫。
*(而在windows上不必,你在windows上安裝PostgreSQL的時候大多數是用於測試環境,因爲如果你使用windows作爲你的server,那麽你爲什麽不用SQL Server呢?畢竟你都為windows server支付版權費了)