Ruby on rails 如果数据库不';运行rake db:drop而不失败;不存在

Ruby on rails 如果数据库不';运行rake db:drop而不失败;不存在,ruby-on-rails,exception,rake,rake-task,Ruby On Rails,Exception,Rake,Rake Task,说: db:当db不存在时,drop可以无故障运行 这正是我所需要的:我需要运行db:drop,但如果数据库不存在,就不要抛出异常或停止整个过程,如果数据库存在,就删除它,或者什么也不做 我该怎么做?如果数据库不存在,我如何告诉db:drop不要毁掉我的生活 这是我遇到问题的代码(it帮助): 名称空间:db do 任务导入::环境做什么 Rake::Task[“db:drop”]。invoke#如果数据库不存在,整个导入过程将终止! Rake::Task[“db:创建”]。调用 Rake::T

说:

db:当db不存在时,drop可以无故障运行

这正是我所需要的:我需要运行db:drop,但如果数据库不存在,就不要抛出异常或停止整个过程,如果数据库存在,就删除它,或者什么也不做

我该怎么做?如果数据库不存在,我如何告诉db:drop不要毁掉我的生活

这是我遇到问题的代码(it帮助):

名称空间:db do
任务导入::环境做什么
Rake::Task[“db:drop”]。invoke#如果数据库不存在,整个导入过程将终止!
Rake::Task[“db:创建”]。调用
Rake::Task[“db:迁移”]。调用
database\u config=Rails.configuration.database\u configuration[Rails.env]
系统“psql--username={database_-config['username']}}{database_-config['database']}
为什么不能进行简单的异常处理

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
名称空间:db do
任务导入::环境做什么
开始
Rake::Task[“db:drop”]。invoke#如果数据库不存在,整个导入过程将终止!
Rake::Task[“db:创建”]。调用
Rake::Task[“db:迁移”]。调用
database\u config=Rails.configuration.database\u configuration[Rails.env]
系统“psql--username={database_-config['username']}}{database_-config['database']}e
p“例外情况是#{e.message}”
结束
结束
结束

如果db:drop失败,OP当然希望执行流程的其余部分(即db:create forwards)。在此代码中,它将跳过该代码并转到异常块。
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