sql >> Database teknologi >  >> RDS >> PostgreSQL

Rails + Postgres drop-fejl:Databasen tilgås af andre brugere

Hvis du dræber de kørende postgresql-forbindelser til din applikation, kan du så køre db:drop fint. Så hvordan dræber man disse forbindelser? Jeg bruger følgende rake-opgave:

# 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

At dræbe forbindelserne fra under skinnerne vil nogle gange få det til at spærre, næste gang du forsøger at indlæse en side, men genindlæser det igen, genetableres forbindelsen.



  1. Kan ikke bruge et CONTAINS eller FREETEXT prædikat på tabel eller indekseret visning, fordi det ikke er fuldtekstindekseret

  2. Der opstod en netværksrelateret eller instansspecifik fejl under oprettelse af en forbindelse til SQL Server

  3. Reneste måde at bygge en SQL-streng i Java

  4. Skal hver brugertabel have et grupperet indeks?