2017-01-01 54 views
0

我在Capistrano的Ubuntu服務器上部署了Rails應用程序。但是,我正在嘗試運行我創建的自定義任務,並且位於'lib/tasks'中。我試圖使它工作由執行Capistrano 3.0 Rails 5.0.0數據庫自定義任務

帽生產DB:觀點

,如果它是一個自定義任務,但顯然它沒有工作

帽中止! 不知道如何建設任務「DB:若干意見」

該文件是sql_views.rake,這個任務是如果你使用cap install生成您Capfile在數據庫中創建

namespace :db do 
    desc "Update and create SQL views" 
    task :views => :environment do 
    Dir["#{Rails.root}/db/sql_views/*.sql"].each do |file_name| 
     STDERR.puts "Applying the SQL view at #{file_name}" 
     source_file = File.new(file_name, 'r') 

     if source_file and (sql_content = source_file.read) 
     ActiveRecord::Base.transaction do 
      # Each statement ends with a semicolon followed by a newline. 
      sql_lines = sql_content.split(/;[ \t]*$/) 
      if sql_lines.respond_to?(:each) 
      sql_lines.each do |line| 
       ActiveRecord::Base.connection.execute "#{line};" 
      end 
      end 
     end # transaction 
     end 

    end # Dir.each 
    end # task 
end 

回答

0

意見,應該存在以下行:

# Load custom tasks from `lib/capistrano/tasks` if you have any defined 
Dir.glob("lib/capistrano/tasks/*.rake").each { |r| import r } 

因此它正在尋找lib/capistrano/tasks自定義任務。

移動lib/tasks/sql_views.rakelib/capistrano/tasks/sql_views.rake

或者只是導入每個耙子任務:

import 'lib/tasks/sql_views.rake'