美文网首页
rails下db:migrate禁止db:schema:dump

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

作者: bruce_wu | 来源:发表于2015-09-26 00:20 被阅读176次

    由于项目迁移太多每次执行迁移都耗时漫长,有时甚至无法成功
    仔细查看 ,发现时间主要耗在了最后一步 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
    

    相关文章

      网友评论

          本文标题:rails下db:migrate禁止db:schema:dump

          本文链接:https://www.haomeiwen.com/subject/nskwcttx.html