繁体   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