情景引入
很多時候,新項目創建數據庫,是從已有的數據庫拷貝而來。下面分享一個PostgreSQL
非常簡單便捷的以已有數據庫爲模板快速創建新數據庫的方法。
雖然看起來我的文章寫得挺長的,但是其實操作真的就是簡單的幾步。請耐心閱讀。
創建過程
- 創建用戶和表空間(根據需求,也可以用已有的用戶和表空間)
- 打開創建數據庫窗口
- 填寫常規信息
- 選擇定義參數
- 斷開所有連接用戶,保存提交
具體操作
本文通過克隆已有的數據庫product
,創建一個新的數據庫newdb
。
創建用戶和表空間
首先,如果新數據庫需要新的用戶和表空間,那麼先創建好相應的用戶和表空間。這裏就不描述如何創建用戶和表空間了,我就用PostgreSQL默認的用戶postgres
和表空間pg_default
來演示。
打開創建數據庫窗口
在PostgreSQL自帶的工具pgAdmin中選擇相應的數據庫位置,右鍵選擇創建
→數據庫
,打開創建數據庫窗口
填寫常規信息
如圖,填寫數據庫名稱newdb
,選擇所有者postgres
,填寫備註信息。
選擇定義參數
選擇編碼爲UTF-8
,模板爲要拷貝的數據庫product
,選擇需要的表空間,其他默認即可。
斷開所有用戶連接,保存提交
設置好上面的信息後,點擊保存按鈕,即可創建新的數據庫。但是一般情況下會報錯:其他用戶正在訪問源數據庫。所以需要先斷開所有用戶連接。
保持創建數據庫窗口存在(不要關閉)。在要複製的數據庫上右鍵選擇查詢工具,在打開的查詢窗口中執行下面SQL語句。會彈出警告窗口,警告當前數據庫連接已斷開,點擊取消關閉警告窗口即可。查詢工具界面消息顯示到服務器的連接已丟失。
SELECT pg_terminate_backend(pg_stat_activity.pid)
FROM pg_stat_activity
WHERE datname='dbname'
然後點擊之前的創建數據庫窗口的保存按鈕進行保存。稍等片刻,就會完成新數據庫的創建,在左側的數據庫目錄樹上可以看到新創建的數據庫newdb
。可以看到newdb
數據庫擁有了product
數據庫的所有數據。