Это будет работать.
task :demo_using_db_config => :environment do
db_config = Rails.application.config.database_configuration[Rails.env]
system "mysql -u#{db_config['username']} -p#{db_config['password']} #{db_config['database']} < backup.sql"
end
Поскольку это зависит от среды, мы хотим, чтобы задача зависела от задачи: environment.
Кроме того, если вы используете ActiveRecord, вы можете получить эту информацию, как показано ниже:
abcs = ActiveRecord::Base.configurations
puts abcs[Rails.env]["username"]
puts abcs[Rails.env]["password"]
Это работает в граблях и в других местах.