导入postgresql数据库转储文件

3
我有一个工作流程需要使用短的PHP脚本自动化。具体步骤如下:
  1. 从特定URL(可能是FTP)下载包含数据库转储的gz文件。
  2. 将文件解码为txt格式。
  3. 使用psql(cmd命令)将txt导入到本地PostgreSQL中。
现在我有两个问题:
  • 传递gunzipped文件给pg_query的最佳方法是什么?
  • 当PHP执行以下代码时,会出现错误:
    COPY rf (datum, id_emailu_op, recency, frequency) FROM stdin; 2011-08-29 8484 3 1stdin可能会成为问题吗?
谢谢大家!

2
在shell提示符下,gzcat dump.gz|psql会解压缩.gz文件并将输出直接发送到postgres。 - Marc B
一个简短的Bash脚本可能更简单,具体取决于你的需求。 - Brad Koch
我建议使用 pg_dump -Fc 进行备份,然后使用 pg_restore 进行恢复。 - Kenaniah
1个回答

2

pg_dump文件是通过psql导入的。您可以加载文件内容,甚至使用php解压缩,然后打开一个管道到psql,将数据写入该进程(假设您在Unix机器上)。以这种方式执行psql时,就像您的php脚本通过stdin输入数据一样。


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