2013-06-11 24 views
11

tarafından kullanımdadır. Aşağıdaki hatayı rasgele bir şekilde test paketimizde veritabanı temizleyici ile alıyoruz.Mysql2 :: Hata: Bu bağlantı

Hata:

Mysql2::Error: This connection is in use by: #<Thread:0x00000017bbf2f8 sleep>: TRUNCATE TABLE `cr_contacts`; 

Paylaşılan DB Bağlantı (olası nedeni)

class ActiveRecord::Base 
    mattr_accessor :shared_connection 
    @@shared_connection = nil 

    def self.connection 
    @@shared_connection || retrieve_connection 
    end 
end 

# Forces all threads to share the same connection. This works on 
# Capybara because it starts the web server in a thread. 
ActiveRecord::Base.shared_connection = ActiveRecord::Base.connection 

cevap

9
Biz ilişkilidir düşünüyorum aşağıdaki iki kod snippet'leriyle birlikte veritabanı temizleyici kullanıyorsanız

Hata, DB temizleyicinin kesilmeyi istediğini anlatırken, diğer iş parçacığı hala bağlantıyı kullanıyor. Bu muhtemelen selenyum ile entegrasyon testlerinde gerçekleşir. Veritabanı temizleyici

Bu Tamam değil paylaşılır bağlantıları yama ile

İlgili konular