In short: With the help of the friendly folks in #rails-contrib, I've
been working on a patch that provides Ruby configuration of your
database connections. I'm looking for people to test the patch and
post +1s if it works for them. You can find the patch in Lighthouse:
http://rails.lighthouseapp.com/projects/8994-ruby-on-rails/tickets/312
(its the last attachment, dry_database_config.diff)
## What's it look like?
In config/environment.rb:
> config.active_record.connection.configure do |db|
> db.adapter = 'mysql'
> db.encoding = 'utf8'
> end
In config/development.rb:
> config.active_record.connection.configure do |db|
> db.database = 'test_app_development'
> db.socket = '/tmp/mysql.sock'
> db.username = 'root'
> db.password = ''
> end
So the short of it is that you configure global stuff in
environment.rb and environment-specific stuff in the respective files.
This generates the connection-specification hashes that
ActiveRecord::Base.establish_connection expects.
## Why change?
database.yml is workable, but its a little weird at this point. There
is no other instance of YAML configuration in one's app when it runs
in production. This approach also lets you significantly DRY up your
configuration. Its even possible to specify the entire configuration
in environment.rb.
Idatabase.yml is still loaded if you don't specify the database
connection in your environment files. I wouldn't up and take it away
from you like that. :)
## Securing your database credentials
We all know its a good idea to keep your database credentials
(username/password) out of source control. This patch supports that
raising an exception if you try to set your username or password in a
production setting. Instead, you specify a credentials file like so:
> config.active_record.configure do |db|
> db.database = 'test_app_production'
> db.socket = '/var/run/mysql.sock'
> db.credentials = "#{RAILS_ROOT}/config/credentials.rb"
> end
The preferred credential format is Ruby, like so:
> username = 'root'
> password = ''
YAML is also supported:
> username: root
> password:
## Other bits and bobs
I also patched the application generator to produce an app with no
database.yml. Database config bits are added to environment.rb. The
adapter-specific comments get added in environment.rb.
## Did I mention I'm looking for +1s
Yes, the pandering is strong with this one. Grab
dry_database_config.diff from
http://rails.lighthouseapp.com/projects/8994-ruby-on-rails/tickets/312
and give it a spin.
Thanks in advance!
--
~akk
http://therealadam.com
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby
on Rails: Core" group.
To post to this group, send email to rubyonrails-core@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/rubyonrails-core?hl=en
-~----------~----~----~----~------~----~------~--~---