2014-03-12 24 views
1

当执行rake db:migrate命令时,它挂起在Execute db:schema:dump步骤。 我使用jruby 1.7.10和db gem jdbc-db2 v 9.7。好像在数据库目录中成功创建了schema.rb文件,但该命令仍然在该步骤中挂起。rake db:migrate挂在db:schema:转储步骤

有什么想法可能会导致这将是有益的。

+0

你检查了你的数据库的状态吗?与postgresql和db服务器重新加载相同的问题已经解决了它 – MikeZ

回答

0

我刚刚经历了类似的事情,我的耙测试一直在变慢。我正在使用Rails 2.0.2,Ruby 1.8.6和Oracle 11.2。

问题是,Oracle有一个recycle bin,并且当每次运行rake测试时表被删除并重新创建时,这个问题已经满了。

为了避免回收站变得巨大,我在准备测试数据库后添加了一个步骤来清除它。用下面创建一个文件lib/tasks/databases.rake

namespace :db do 
    namespace :test do 
    task :prepare do 
     # The Oracle recycle bin fills up and slows down the test preparation. 
     ActiveRecord::Base.connection.execute("purge recyclebin") 
    end 
    end 
end 

你可能不希望这样做在你的生产数据库,但是你没有运行分贝:测试:准备对生产数据库,是吗?

我通过注意这个查询很长一段时间运行中发现的问题:

SELECT lower(i.index_name) as index_name, i.uniqueness, lower(c.column_name) as column_name 
FROM user_indexes i, user_ind_columns c 
WHERE i.table_name = 'QCS_USERS' 
AND c.index_name = i.index_name 
AND i.index_name NOT IN (SELECT uc.index_name FROM user_constraints uc WHERE uc.constraint_type = 'P') 
ORDER BY i.index_name, c.column_position 

望着user_constraints表,我看到有成千上万行的,即使我放弃我所有的表格,并导致我到some discussions的回收站。