我有一个在Postgres9.3.5数据库上运行的rails应用程序。这已经在我的开发环境中运行了一段时间。今天我应用了一个rails迁移,然后当我试图运行一个rake db:reset时,我收到了一个错误:

 psql: FATAL: database "db_name" is not currently accepting connections

现在,这是我尝试运行任何psql或rake db任务时的唯一响应。例如:
  $ psql -d db_name
  psql: FATAL:  database "db_name" is not currently accepting connections

我可以在数据库列表中看到数据库名称,它有正确的所有者。
什么会导致“当前不接受连接”的状态,如何修复?

最佳答案

只有在datallowconn中将pg_catalog.pg_database设置为false时才会发出该消息。这是用来保护template0数据库不受意外修改的,但是PostgreSQL本身并没有这样做。
很难想象您是如何在另一个数据库上进入这种状态的,除非您手动UPDATE编制系统目录。
有一个未经记录的选项可以选择ALTER DATABASEallow_connections = false,这会产生相同的结果,但您这样做的可能性似乎更小。
如果在不是保留模板的数据库中遇到这种情况,可以

UPDATE pg_database SET datallowconn = true WHERE datname = 'my_database';

关于ruby-on-rails - psql:严重:数据库“db_name”当前不接受连接,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31147581/

10-17 02:55