sql >> Database >  >> RDS >> PostgreSQL

Rails + Postgres drop-fout:database wordt geopend door andere gebruikers

Als u de actieve postgresql-verbindingen voor uw toepassing afsluit, kunt u db:drop prima uitvoeren. Dus hoe die verbindingen te doden? Ik gebruik de volgende harktaak:

# 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

Als u de verbindingen onder de rails uitschakelt, wordt deze soms afgebroken de volgende keer dat u een pagina probeert te laden, maar als u deze opnieuw laadt, wordt de verbinding hersteld.



  1. Hoe verschillend is PostgreSQL van MySQL?

  2. Een subset van kolommen selecteren uit de resultatenset van een opgeslagen procedure (T-SQL)

  3. Software Review - Stellar Reparatie voor MS SQL

  4. Hoe LAST_DAY() werkt in MariaDB