我做了我的数据库的备份:
-bash-4.2$ pg_dump -d mydb --format=custom -f /tmp/dump
-bash-4.2$
下面检查,我在那里看到了我的功能:
-bash-4.2$ pg_restore -l /tmp/dump | grep -i addconf
233; 1255 39949 FUNCTION public addconfiguration(text) mydb
247; 1255 39950 FUNCTION public addconfiguration2(text) mydb
273; 1255 39951 FUNCTION public addconfiguration3(text) mydb
然后我尝试使用 Postgres pg_restore指令恢复一个函数:
-bash-4.2$ pg_restore -d postgres --function=addconfiguration2(text) -v /tmp/dump
-bash: syntax error near unexpected token `('
我也尝试不使用括号和 arg,但它没有用:
-bash-4.2$ pg_restore -d postgres --function=addconfiguration2 -v /tmp/dump
pg_restore: connecting to database for restore
pg_restore: implied data-only restore
在尝试之后,我验证了该函数是否是使用\df
内部 psql 创建的,但没有成功。
如何使用 pg_restore 恢复函数?
括号对 shell 来说是特殊的。您不必删除它,您必须引用/转义它以使其通过外壳。