In response to my uber patch for the OpenBase database adapter, DHH mentioned that the intention for 2.0 was to pull most of the adapters out into plugins so that development could continue outside of the core. I think the end result is admirable - the core team doesn't need to waste time applying patches for databases that they have no means or inclination to install/use/test/etc. The core team should be designing AR, and the adapter maintainers figure out what this means for their specific database backend (understanding, of course, that AR design can't occur in a bubble ... I don't mean to say that implementation should not be a consideration in AR design decisions). However, in thinking through the user experience I think there may be an even better way.
If some adapters, say mysql and postgres, remain in core while the rest become plugins, then we will create a discontinuity in the user experience. For some databases, you need only to specify your adapter in database.yml and you're good to go. For other databases, you'll need to not only adjust database.yml, but also perform this extra step of running script/plugin install ... Then there's the question of matching adapter versions to versions of Rails. But what if the adapters were bundled as RubyGems? After all, installing the rails gem means installing the gems that comprise rails. What if the gem for each of the adapters was listed as a dependancy for rails? Then they would already be installed and available to everybody using rails as a gem. When the database.yml file is parsed, we can load the proper gem based on the adapter setting. The adapters are not in the core, but they can all be accessed without loading plugins. And, pardon me if my understanding of RubyGems is demonstrated to be painfully lacking, but couldn't we also say that a specific version of rails requires a certain version of the adapter gem? Of course, the elephant in the room is, what to do when rails is not being run as a gem. How would this affect rails:freeze:edge? Just my crazy idea for the day... -Derrick Spell --~--~---------~--~----~------------~-------~--~----~ 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 [email protected] 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 -~----------~----~----~----~------~----~------~--~---
