rails下db:migrate禁止db:schema:dump

由于项目迁移太多每次执行迁移都耗时漫长,有时甚至无法成功
仔细查看 ,发现时间主要耗在了最后一步 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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容