SORU
3 Mart 2010, ÇARŞAMBA


Raylar İsim bırak hata: veritabanı diğer kullanıcılar tarafından erişilen

Raylar bir uygulama PostgreSQL üzerinde çalışan var.

İki sunucu var: Test ve üretim için diğeri.

Çok sık test sunucusunda üretim DB klonlamak istiyorum.

Vlad ile runnig ben komut:

rake RAILS_ENV='test_server' db:drop db:create

Yaşıyorum sorun aşağıdaki hatayı alıyorum:

ActiveRecord::StatementInvalid: PGError: ERROR: database <database_name> is being accessed by other users DROP DATABASE IF EXISTS <database_name>

Bu eğer birisi (bir "" açık) oturumu . isim tutar son zamanlarda web üzerinden başvuru erişilen varsa olur

PostgreSQL DB oturumları sonlandırmak herhangi bir yolu var mı?

Teşekkür ederim.

Edit

Phppgadmin veritabanı arayüzü kullanarak ama komisyon görevi ile silebilirim.

Nasıl komisyon bir görev ile phppgadmin damla çoğaltabilir miyim?

CEVAP
21 NİSAN 2011, PERŞEMBE


Eğer uygulamanız için çalışan postgresql bağlantıları öldürürsen, o zaman db çalıştırın:iyi bırakabilirsiniz. Nasıl bu bağlantıları öldürmek? Aşağıdaki komisyon görev kullanıyorum:

# 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

Bağlantılar altında raylar intihar bazen bir sayfa yüklemeye dahaki sefere kusmak neden olur, ama yeniden yeniden yeniden bağlantı kurar.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Brandon McCrary

    Brandon McCr

    15 Ocak 2012
  • DudeFromUkraine

    DudeFromUkra

    7 Ocak 2008
  • Mismag822 - The Card Trick Teacher

    Mismag822 -

    18 EKİM 2008