【发布时间】:2011-01-23 02:35:02
【问题描述】:
我有一个在 Postgres 上运行的 rails 应用程序。
我有两台服务器:一台用于测试,另一台用于生产。
我经常需要在测试服务器上克隆生产数据库。
我通过 Vlad 运行的命令是:
rake RAILS_ENV='test_server' db:drop db:create
我遇到的问题是我收到以下错误:
ActiveRecord::StatementInvalid: PGError: ERROR: database <database_name> is being accessed by other users DROP DATABASE IF EXISTS <database_name>
如果有人最近通过网络访问了应用程序,就会发生这种情况(postgres 保持“会话”打开)
有什么方法可以终止 postgres DB 上的会话?
谢谢。
编辑
我可以使用 phppgadmin 的界面删除数据库,但不能使用 rake 任务。
如何通过 rake 任务复制 phppgadmin 的 drop?
【问题讨论】:
-
确保您没有与数据库的连接,否则它不会丢弃它。查看更多关于this here的信息。