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

  • Google Developers

    Google Devel

    23 AĞUSTOS 2007
  • Hudson Music

    Hudson Music

    13 Mart 2007
  • The Warp Zone

    The Warp Zon

    24 AĞUSTOS 2007