Postgres template0 template1都被删除了

时间:2016-06-23 14:23:36

标签: postgresql osx-elcapitan

我错误地删除了postgres的template0和template1,现在无法创建数据库。我目前在OSX 10.11上运行postgres 9.5.3。我可以帮助恢复这两个模板;我已经尝试使用自制软件卸载/重新安装,但没有运气。

1 个答案:

答案 0 :(得分:0)

您不能删除数据库模板0 - 不能使用任何合法方法。你可以做什么?现在,您的数据库集群已损坏,有两种可能性:

  1. 使用pg_dump备份您当前的数据库。使用initdb创建新的数据库群集。新数据库集群将具有正确的template0,template1

  2. 您可以尝试从任何现有数据库创建template1 - 您可以使用语句TEMPLATE的子句CREATE DATABASE

  3. postgres=# create database template1 template postgres;
    ERROR:  database "template1" already exists
    postgres=# create database template0 template postgres;
    ERROR:  database "template0" already exists
    

    首选方法应该是首选方法,因为没人知道,群集中的内容是什么。