4

这条评论说:

当 db 不存在时,db:drop 可以正常运行

这正是我所需要的:我需要运行 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
4

1 回答 1

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
于 2013-05-14T08:13:44.067 回答