如何使用Postgres备份/恢复Rails db?

时间:2013-09-10 15:57:45

标签: ruby-on-rails postgresql

我在服务器上执行以下操作:

 pg_dump -O -c register_production > register.sql

然后,在将r​​egister.sql复制到我的本地环境之后,我尝试:

 psql register_development < register.sql

这似乎有效,但是当我尝试在本地启动Rails站点时,我得到了这个:

 PG::UndefinedTable: ERROR:  relation "list_items" does not exist at character 28

如何从服务器db恢复到本地dev db?

的所有内容(包括关系)

2 个答案:

答案 0 :(得分:47)

我使用此命令保存我的数据库:

pg_dump -F c -v -U postgres -h localhost <database_name> -f /tmp/<filename>.psql

这要恢复它:

pg_restore -c -C -F c -v -U postgres /tmp/<filename>.psql

这会以Postgres的自定义格式(-F c)转储数据库,默认情况下压缩该格式并允许重新排序其内容。 -C -c将删除数据库(如果已存在),然后重新创建它,对您的情况很有帮助。并且-v指定了详细信息,因此您可以确切地看到这种情况发生了什么。

答案 1 :(得分:1)

在运行psql命令之前,register_development数据库是否存在?因为该表单不会为您创建它。

有关详细信息,请参阅http://www.postgresql.org/docs/8.1/static/backup.html#BACKUP-DUMP-RESTORE