PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Lỗi drop Rails + Postgres:cơ sở dữ liệu đang được người dùng khác truy cập

Nếu bạn loại bỏ các kết nối postgresql đang chạy cho ứng dụng của mình, thì bạn có thể chạy db:drop. Vậy làm thế nào để tiêu diệt những kết nối đó? Tôi sử dụng tác vụ cào sau:

# 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

Việc loại bỏ các kết nối từ bên dưới đường ray đôi khi sẽ khiến nó bị ngắt vào lần tiếp theo khi bạn cố tải một trang, nhưng việc tải lại nó một lần nữa sẽ thiết lập lại kết nối.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Trả về bản ghi setof (bảng ảo) từ hàm

  2. Làm thế nào để tính toán đường trung bình động theo cấp số nhân trên postgres?

  3. Các cột được tính toán / tính toán / ảo / dẫn xuất trong PostgreSQL

  4. Các giải pháp khả dụng cao của PG Clustering hàng đầu cho PostgreSQL

  5. Tải kết xuất Postgres sau khi docker-soạn lên