是否可以将参数从表传递到pg_dump?

时间:2020-05-18 15:36:04

标签: postgresql pg-dump

我需要比这个简单的问题更具体。 我们需要将数据库中的表和模式发布到另一个数据库。但不是整个数据库。

某些上下文:我们将允许用户/管理员在数据库的表中写入转储和还原的顺序。 然后,我们想将命令传递给pg_dump。 假设用户A在名为“ ordre_publication”的表中写了一些行,这些行中的每一行都包含一个架构名称。我们希望将这些参数传递给pg_dump。

我试图编写一个函数,该函数将被调用,并用正确的行写一个.sh文件。 在另一数据库中,一行用于pg_dump指令,另一行用于pg_restore指令。

我遇到很多问题。 第一:如何处理意见?如果我的用户指定一个视图而不是表,则该视图将无效。 第二:如何使用函数编写sh文件。 我尝试过

create or replace function plm.test_publication(out msg text)
language plpgsql  
as $function$
declare 
begin
   msg:='pg_dump...';
   msg:=msg||E'\n\r'||'pg_restore...';
end;
$function$;

但是当我在服务器上操作时:

psql (...) -c "\\copy (select * from plm.test_publication()) to test.sh with (format  text)" -q 

sh文件看起来像

pg_dump...\n\rpg_restore...

但是主要的是:这是一种可靠的解决方法吗?

预先感谢您的任何建议。

0 个答案:

没有答案