2016-04-07 9 views
1

私はrspecを使ってテストしています。私は彼のラップトップで私の友人とプロジェクトに取り組んでいて、テストは合格していた。私はレポをクローンしてラップトップで実行し、すべてのテストは突然失敗しています。postgresでのもう1つのセッション

私はテストデータベースをリセットすることにしました。私はrake db:test:prepare RAILS_ENV=testと呼んだ。

ActiveRecord::StatementInvalid: PG::ObjectInUse: ERROR: database "(app name)" is being accessed by other users 
DETAIL: There is 1 other session using the database. 

私は他のStackOverflowの記事に見て、私は

のsudoのkill -9 `psの-u postgresの-o pidを=を使用して接続を殺すことができることがわかった。そこで、私は言ってエラーを取得開始しました`

そして、これが正常に何かを殺し、私に次のようなコンソール上の結果を与える:

usage: kill [-s signal_name] pid ... 
     kill -l [exit_status] 
     kill -signal_name pid ... 
     kill -signal_number pid ... 

これは正しく行っていますか?他のセッションを正常に削除するにはどうしたらいいですか?

答えて

0

実行しているkillコマンドが実際に何かを終了しているようには見えません。私はまた、安全ではないかもしれないので、postgresプロセスを直接殺すことをお勧めしません。

代わりにps aux | grep rubyまたはps aux | grep rspecを実行しようとしている可能性があります。あなたが知らないうちにルビープロセスまたはrspecプロセスが実行されている可能性があります。そこから、そのプロセスのプロセスID(PID)を取得し、kill -15 <pid>を使用してそれを強制終了することができます。それでも停止しない場合は、kill -9 <pid>を使用して強制的に終了します。

関連する問題