带有数据限制的Postgresql转储



我正在开发一种快速的方法来克隆数据库以测试应用程序。我的数据库中有一些特定的表非常大(+50GB(,但绝大多数表只有几个MB。在我当前的服务器上,转储+恢复需要几个小时。这些bigs表有日期字段。

考虑到上下文,我的问题是:是否可以对表行使用某种类型的限制来选择要转储的数据?例如,在表X上,只转储日期为Y的行。

如果这是一个可能的节目,我能做吗?如果不可能,还有什么好的选择?

您可以使用COPY SELECT whatever FROM yourtable WHERE ... TO '/some/file'来限制导出内容。

COPY命令

您可以使用行级安全性,并创建一个策略,使转储数据库用户只能看到您想要转储的行(确保该用户既不是超级用户,也不是表的所有者,因为这些用户不受行级安全保护(。

然后使用pg_dump--enable-row-security选项将数据库转储给该用户。

相关内容

  • 没有找到相关文章

最新更新