2013-05-13 3 views
3

This comment 존재하지 않는 경우 실패없이 드롭 말한다 :실행 레이크 DB : 데이터베이스가

dB : 데시벨이 내가 필요 정확히 무엇

존재하지 않는 경우 드롭 실패없이 실행할 수 있습니다 : db : drop을 실행해야하지만 예외가 발생하지 않거나 데이터베이스가 존재하지 않는 경우 전체 프로세스를 중지하지 않고 데이터베이스가 존재하거나 아무것도 수행하지 않으면 삭제하십시오.

어떻게하면됩니까? 데이터베이스가 존재하지 않으면 db:drop 내 삶을 파괴하지 말라고 어떻게 말할 수 있습니까?

namespace :db do 
    task import: :environment do 
    Rake::Task["db:drop"].invoke # If the database doesn't already exist, the whole import process terminates! 
    Rake::Task["db:create"].invoke 
    Rake::Task["db:migrate"].invoke 
    database_config = Rails.configuration.database_configuration[Rails.env] 
    system "psql --username=#{database_config['username']} #{database_config['database']} < PostgreSQL.sql" 
    end 
end 

답변

0

왜 당신은 분명히 영업 이익은 나머지를 원하는

namespace :db do 
    task import: :environment do 
    begin 
     Rake::Task["db:drop"].invoke # If the database doesn't already exist, the whole import process terminates! 
     Rake::Task["db:create"].invoke 
     Rake::Task["db:migrate"].invoke 
     database_config = Rails.configuration.database_configuration[Rails.env] 
     system "psql --username=#{database_config['username']} #{database_config['database']} < PostgreSQL.sql" 
    rescue Exception => e 
    p "The Exception is #{e.message}" 
    end 
    end 
end 
+1

처리하는 간단한 예외 갈 수 없습니다

내가 (그것을 그것은 도움)의 문제가 발생하고있어 코드입니다 db : drop이 실패 할 경우 실행할 프로세스 (즉, db : create 이후)를 지정합니다. 이 코드에서는 해당 코드를 건너 뛰고 예외 블록으로 이동합니다. – rmcsharry

관련 문제