由于项目迁移太多每次执行迁移都耗时漫长,有时甚至无法成功
仔细查看 ,发现时间主要耗在了最后一步 db:schema:dump
rake db:migrate --trace
** Invoke db:migrate (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute db:migrate
** Invoke db:schema:dump (first_time)
** Execute db:schema:dump #时间都耗在这里啦
可以在本地其实可以完全不用dump schema.db 文件
so我们可以通过覆盖db:schema:dump禁用生成文件
我们在项目的 lib 目录下新建一个文件夹 tasks,然后新建一个文件
disable_dump_schema.rake (这个文件可以起任意的名字,但必须是.rake文件)
if RAILS_ENV=='development'
Rake::TaskManager.class_eval do
def remove_task(task_name)
@tasks.delete(task_name.to_s)
end
end
Rake.application.remove_task('db:schema:dump')
namespace :db do
namespace :schema do
task :dump do
#Overridden to do nothing
end
end
end
end
网友评论