Skip to content

Commit

Permalink
Partial fix of database url tests
Browse files Browse the repository at this point in the history
Prior to #13463 when `DATABASE_URL` was set, Rails automagically used that value instead of the database.yml. There are tests in dbs_test that expect this to still be true. After that PR, `RAILS_DATABASE_URL` is expected to be read into the YAML file via ERB, this PR fixes that behavior.

Note: this does not entirely fix the tests. It seems that `ActiveRecord::Tasks::DatabaseTasks.current_config` does not process the url string correctly (convert it into a hash), and ` ActiveRecord::Tasks::DatabaseTasks.structure_load(current_config, filename)` as well as other methods in `DatabaseTasks` expect a hash.

It seems like we should involve the resolver somewhere in this process to correctly convert the database url, I do not know the best place for that /cc @josevalim
  • Loading branch information
schneems committed Dec 25, 2013
1 parent d80ad96 commit ba88293
Showing 1 changed file with 4 additions and 1 deletion.
5 changes: 4 additions & 1 deletion railties/test/application/rake/dbs_test.rb
Expand Up @@ -20,9 +20,12 @@ def database_url_db_name
end end


def set_database_url def set_database_url
ENV['DATABASE_URL'] = File.join("sqlite3://:@localhost", database_url_db_name) ENV['RAILS_DATABASE_URL'] = File.join("sqlite3://:@localhost", database_url_db_name)
# ensure it's using the DATABASE_URL # ensure it's using the DATABASE_URL
FileUtils.rm_rf("#{app_path}/config/database.yml") FileUtils.rm_rf("#{app_path}/config/database.yml")
File.open("#{app_path}/config/database.yml", 'w') do |f|
f << {ENV['RAILS_ENV'] => '<%= ENV["RAILS_DATABASE_URL"] %>'}.to_yaml
end
end end


def expected def expected
Expand Down

0 comments on commit ba88293

Please sign in to comment.