有没有一种简单的方法在PostgreSQL 8.1中创建数据库或模式的副本?
我正在测试一些软件,它对数据库中的特定模式进行了大量更新,我想复制它,以便我可以对原始模块进行一些比较.
如果它位于同一服务器上,则只需使用带有TEMPLATE参数的CREATE DATABASE命令.例如:
pg_dump
有--schema-only
选项.
如果必须将架构从本地数据库复制到远程数据库,则可以使用以下两个选项之一.
选项A.
将架构从本地数据库复制到转储文件.
pg_dump -U postgres -Cs database > dump_file
将转储文件从本地服务器复制到远程服务器.
scp localuser@localhost:dump_file remoteuser@remotehost:dump_file
连接到远程服务器.
ssh remoteuser@remotehost
将架构从转储文件复制到远程数据库.
psql -U postgres database < dump_file
选项B.
将架构直接从本地数据库复制到远程数据库,而不使用中间文件.
pg_dump -h localhost -U postgres -Cs database | psql -h remotehost -U postgres database
如果您想了解有关使用复制数据库的选项的更多信息,此博客文章可能对您有所帮助pg_dump
.