我正在使用rails与oracleenhanced
适配器为传统应用程序创建新接口。Rails:rake db:migrate * very * slow on Oracle
数据库迁移成功完成,但是在耙取完成之前需要花费非常长的时间。数据库更改发生得非常快(1或2秒),但db/schema.db
转储需要一个多小时才能完成。 (请参阅下面的示例迁移。)
这是一个相对较大的模式(大约150个表),但我相信不应花这么长时间才能转储出每个表的描述。
有没有办法通过只取最后的schema.db
并应用迁移中指定的更改来加速?或者我能够完全跳过这个模式转储?
我明白这个schema.db
是用来从头开始创建测试数据库,但是这种情况下,表格触发器中有很大一部分数据库逻辑,它们不包含在schema.rb
之内,所以耙测试是在任何情况下对我们都没有好处。 (这是一个完全不同的问题,我需要一些其他的点进行梳理。)
[email protected]:~/rails/voyager$ time rake db:migrate (in /home/dgs/rails/voyager) == 20090227012452 AddModuleActionAndControllerNames: migrating ================ -- add_column(:modules, :action_name, :text) -> 0.9619s -> 0 rows -- add_column(:modules, :controller_name, :text) -> 0.1680s -> 0 rows == 20090227012452 AddModuleActionAndControllerNames: migrated (1.1304s) ======= real 87m12.961s user 0m12.949s sys 0m2.128s
很酷。我将在oracle_enhanced_adapter.rb中发挥一下,看看我能找到什么。 我怀疑它被绑定到模式中,因为在数据库中有许多具有不同名称的相同模式。 干杯 – 2009-03-02 20:22:16