このコメントは次のように述べています。
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