许多Web(如StackOverFlow:将PostgreSQL数据库复制到另一台服务器(都在谈论这一点,但我的命令可能有问题。
pg_dump -C -h localhost -U postgres BD.to.move | psql -h server.destiny -U postgres BD.to.move
我有S1 上的root密码+postgres密码
我在S2 上有root密码+postgres密码
然而,在运行我的命令over server1
之后,在服务器2中不存在BD.to.move
。
我的命令错了?
如何复制/传输{BD.to.move+角色+SCHEMAS+用户、+密码等…}?
(换言之,BD完成后直接通过server.desting在生产中使用(
不要指定参数BD.to.move
到psql
,因为目标中不存在该数据库。使用现有的postgres
。
如果使用-C
创建转储,它将包含一个CREATE DATABASE
语句。为了恢复这样的转储,您必须连接到要恢复的数据库之外的现有数据库,然后psql
将首先创建数据库,然后连接到该数据库并恢复数据。