[英]syntax error at or near “:” when running parametrized query from shell
[英]Syntax error when running Query: "syntax error at or near "\""
我已经生成了一个 PostgreSQL 脚本,我想用它来恢复数据库。 当我去我的备份服务器尝试恢复时,我收到错误: syntax error at or near "\"
。
它卡在以下字符\.
这些看起来像这样:
COPY admin.roles (role_id, role_name, is_role_auto) from stdin;
\.
这个说法有什么问题? 有没有我错过的配置? 我在 Windows 上使用 PostgreSQL 11.4,使用pg_dump
进行备份,然后使用 pgAdmin 恢复它。
您不能使用 pgAdmin 来恢复使用pg_dump
进行的“纯格式”转储。 它不理解COPY
及其数据交错的psql
语法。
您将不得不使用psql
来恢复转储:
psql -h server -p 5432 -U user -d database -f dumpfile.sql
如果不完整查看备份和恢复命令,很难知道具体错误,但如果有帮助,这是我想将表从生产复制到备份服务器时使用的样板:
$BIN/pg_dump -h production_server -p 5432 \
--dbname=postgres \
--superuser=postgres \
--verbose \
--format=c \
--compress=9 \
--table=admin.roles > backup.sql
$BIN/pg_restore \
--host=backup_server \
--port=5432 \
--username=postgres \
--dbname=postgres \
--clean \
--format=custom \
backup.sql
format=c
(或--format=custom
)使内容完全不可读,但从好的方面来说,它还避免了分隔符等任何奇怪的错误,并且它还完美地复制了复杂的数据结构,如数组和 BLOB。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.