清除postgresql数据库,因为它是新的

时间:2010-11-18 17:21:59

标签: sql database scripting postgresql

我使用psql创建了PostgreSQL数据库转储。

现在我想从文件中恢复此备份:

psql -d thesamename -f /my/backup/file

但是我收到数据已经存在的错误。

是否有任何命令要删除数据库中的所有内容以将其带到刚刚创建的状态,除了再次删除和创建之外?
(我不想再次设置所有者,tablecpace等)

也许用某种方法用备份文件中的数据覆盖数据库? (备份文件来自另一个数据库服务器)

3 个答案:

答案 0 :(得分:5)

答案 1 :(得分:2)

您可以删除数据库的public架构,然后在以下位置重新创建:

DROP SCHEMA PUBLIC CASCADE;
CREATE SCHEMA PUBLIC AUTHORIZATION postgres;
GRANT ALL ON SCHEMA public TO public;

希望它有所帮助...

答案 2 :(得分:1)

您可以根据需要操作它...并且您只想转储data.once您将开始转储数据模式文件将自动生成。并且不需要丢弃旧数据。它将与现有数据上的新数据重叠

您可以浏览此链接以获得更多说明..

http://www.postgresql.org/docs/8.4/interactive/app-pgdump.html

http://www.postgresql.org/docs/8.4/interactive/app-pgrestore.html

您可以使用

GRANT ALL ON SCHEMA public TO public;