簡體   English   中英

將許多postgresql數據庫分組為單獨的模式到同一數據庫中

[英]Group many postgresql databases into separate schemas into same database

我們有許多具有相同結構的postgresql數據庫,每個數據庫僅使用公共shcema。

如何使用單獨的模式將所有這些分組到一個數據庫中?

您可以轉儲數據庫定義和數據,通過將默認模式作為您選擇的內容來編輯輸出,然后將腳本運行回數據庫中。

請記住,以SQL格式進行轉儲,使用默認自定義格式的pg_dump將不起作用。 模式更改僅需要對一行進行更改,例如

SET search_path TO *whateverschema*

如果您不想編輯轉儲(也許它們很大),當然也可以將它們一個接一個地還原到公共模式,將表更改為所需的模式,然后對下一個重復。

不幸的是,沒有特殊的方法可以將現有數據庫轉換為另一個數據庫中的模式。

我忘記了所有klin的評論就是答案,而這一步才是解決方案,

內部customer_x數據庫:

將模式公共重命名更改為customer_x;

然后取pg_dump customer_x:

pg_dump“ customer_x” --schema“ customer_x” -f customer_x.sql

在新的綜合數據庫中:

DROP模式customer_x CASCADE;
創建模式customer_x;

然后加載customer_x的轉儲:

psql“ conglomerated_database” -f customer_x.sql

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM