我可以在同一Postgres服务器上的2个数据库之间进行逻辑复制吗?

8
我正在为两个不同应用程序的数据库创建逻辑复制。然而,在开发环境中,我的数据库保留在同一个postgres docker容器中。
我的应用程序使用rails,因此我创建了一个迁移来创建发布者的订阅。但是当我运行它时,它一直处于保持状态。如果我创建另一个容器并分离数据库,则订阅就可以正常进行。
有没有办法让它在同一个容器中运行?
1个回答

11

看起来你遇到了文档中提到的这个注意事项,需要按照其中描述的两步操作进行:

创建一个连接到同一数据库集群(例如,在同一集群中的数据库之间进行复制或在同一数据库内进行复制)的订阅仅在未作为同一命令的一部分创建复制槽时才会成功。否则,CREATE SUBSCRIPTION调用将挂起。为使其正常工作,请单独创建复制槽(使用函数pg_create_logical_replication_slot和插件名pgoutput),并使用参数create_slot = false创建订阅。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接