diff options
author | Yuji Yaginuma <yuuji.yaginuma@gmail.com> | 2017-11-14 13:54:58 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-11-14 13:54:58 +0900 |
commit | b6d5e46311d7ea59539c1f45c6ffb269eeb23912 (patch) | |
tree | 5f45d00bacbba23c292e672beeeaa7531f534fa0 /railties/test/application | |
parent | 9f8ec3535247ac41a9c92e84ddc7a3b771bc318b (diff) | |
download | rails-b6d5e46311d7ea59539c1f45c6ffb269eeb23912.tar.gz rails-b6d5e46311d7ea59539c1f45c6ffb269eeb23912.tar.bz2 rails-b6d5e46311d7ea59539c1f45c6ffb269eeb23912.zip |
Add `environment` as dependency of `load_config` (#31135)
Currently the environment is not loaded in some db tasks.
Therefore, if use encrypted secrets values in `database.yml`,
`read_encrypted_secrets` will not be true, so the value can not be
used correctly.
To fix this, added `environment` as dependency of `load_config`.
It also removes explicit `environment` dependencies that are no longer
needed.
Fixes #30717
Diffstat (limited to 'railties/test/application')
-rw-r--r-- | railties/test/application/rake/dbs_test.rb | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/railties/test/application/rake/dbs_test.rb b/railties/test/application/rake/dbs_test.rb index fd22477539..0235210fdd 100644 --- a/railties/test/application/rake/dbs_test.rb +++ b/railties/test/application/rake/dbs_test.rb @@ -26,12 +26,12 @@ module ApplicationTests FileUtils.rm_rf("#{app_path}/config/database.yml") end - def db_create_and_drop(expected_database) + def db_create_and_drop(expected_database, environment_loaded: true) Dir.chdir(app_path) do output = rails("db:create") assert_match(/Created database/, output) assert File.exist?(expected_database) - assert_equal expected_database, ActiveRecord::Base.connection_config[:database] + assert_equal expected_database, ActiveRecord::Base.connection_config[:database] if environment_loaded output = rails("db:drop") assert_match(/Dropped database/, output) assert !File.exist?(expected_database) @@ -49,6 +49,22 @@ module ApplicationTests db_create_and_drop database_url_db_name end + test "db:create and db:drop respect environment setting" do + app_file "config/database.yml", <<-YAML + development: + database: <%= Rails.application.config.database %> + adapter: sqlite3 + YAML + + app_file "config/environments/development.rb", <<-RUBY + Rails.application.configure do + config.database = "db/development.sqlite3" + end + RUBY + + db_create_and_drop "db/development.sqlite3", environment_loaded: false + end + def with_database_existing Dir.chdir(app_path) do set_database_url |