db:drop可以在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 :(得分: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