使用pg_dump时,可以使用postgres连接字符串指定主机/数据库/用户名/密码:

pg_dump postgres://someuser:somepassword@somehost.com:5432/somedatabase

我想在pg_还原中使用相同类型的连接字符串:

pg_restore -f dump.dump postgres://userb:somepassword@somehost.com:5432/otherdatabase

但我有一个错误:

pg_restore: [archiver] could not open input file "postgres://userb:somepassword@somehost.com:5432/otherdatabase": No such file or directory

推荐答案

在PostgreSQL工具中,只要可以指定数据库名称,就可以指定连接字符串.

pg_restore的语法中,dbname是通过标志传递的,而不是作为位置参数传递的:

$ pg_restore --help
pg_restore restores a PostgreSQL database from an archive created by pg_dump.

Usage:
  pg_restore [OPTION]... [FILE]

General options:
  -d, --dbname=NAME        connect to database name
  ...

所以你应该使用:

pg_restore -d 'postgres://userb:somepassword@somehost.com:5432/otherdatabase' dump.dump

是的,pg_dumppg_restore之间的用户界面不匹配很糟糕,我希望我们能改变它,但现在有点晚了.

Postgresql相关问答推荐

将几个左连接合并为一个

Haskell仆人发布FormUrlEncode for(向量字符串)字段

使函数内部动态插入更具可读性

Rust中使用sqlx的多线程postgres操作的惯用方法是什么?

查找行中的最小值

是否可以短时间运行 VACUUM FULL 并获得一些好处?

在 SQL 上返回负值

使用 pgx.CopyFrom 将 csv 数据批量插入到 postgres 数据库中

如何将 grafana 与 Google Cloud SQL 集成

Rails Migration 使用转换将字符串转换为整数

PostgreSQL 查询到 Excel 表

在 PostgreSQL docker 镜像中创建表

如何使 Java 和 Postgres 枚举一起工作以进行更新?

如何将两个 PostgreSQL 列聚合到一个用括号分隔的数组

将 SELECT 结果作为参数传递给 postgreSQL 函数

Rails 验证数组中的值

将 csv 文件中存在的 NULL 值复制到 postgres

Postgres Npgsql 连接池

Android 的 JDBC 与 Web 服务

在 Flask-sqlalchemy 和 Postgresql 中使用 JSON 类型