sql >> データベース >  >> RDS >> PostgreSQL

Rails + Postgresドロップエラー:データベースは他のユーザーによってアクセスされています

    アプリケーションで実行中のpostgresql接続を強制終了すると、db:dropを正常に実行できます。では、これらの接続を切断する方法は?次のレーキタスクを使用します:

    # lib/tasks/kill_postgres_connections.rake
    task :kill_postgres_connections => :environment do
      db_name = "#{File.basename(Rails.root)}_#{Rails.env}"
      sh = <<EOF
    ps xa \
      | grep postgres: \
      | grep #{db_name} \
      | grep -v grep \
      | awk '{print $1}' \
      | xargs kill
    EOF
      puts `#{sh}`
    end
    
    task "db:drop" => :kill_postgres_connections
    

    レールの下から接続を切断すると、次にページを読み込もうとしたときにバーフが発生することがありますが、再度再読み込みすると接続が再確立されます。



    1. DBMSコンテキストでのBLOBとは正確には何ですか

    2. MySQL RAND()関数–MySQLでランダムな数値を生成します

    3. AWS上のWindowsでのShareplex入門、パート1

    4. SQLServerの左結合と右結合の違い