Sorry, don't like this.
1) Defaults should be constant imho, not variable.
I generally agree, but I think a reasonable degrade approach is
2) I'd suggest mySQL is just as uncommon as sqlite3 on Windows machines.
Installing mySQL takes more effort and knowledge than installing
sqlite3. If you want a default on a Windows machine I'd think SQL Server
2005 would be the choice, not mySQL.
I would agree with that, but since SQLServer was pulled from core in
2.0, I don't think it would be good to make it the default in any
scenario. Of all of the open-source databases that Rails supports out
of the box in 2.0, Windows users will at least have heard of MySQL and
a little googling finds wide acceptance among big-name companies. I
think SQLLite, however, is hardly known at all.
The scenario I'm trying to solve is this:
1. Windows developer wants to take the brave step of trying out Rails.
2. She picks up any Rails book on the market, finds out she needs to
install MySQL and the Ruby One-Click Installer, and does a gem install
3. She types "rails hello_world" and creates one model
4. Big Problems
3) A default is arbitrary anyways, so I'd say, let's be a fascist all
the way: sqlite3. period.
4) Having one default for all systems means: less code (all 3 lines of
those ;), less documentation, less confusion.
I'm for mislav's suggestion that this is more a matter of documentation.
And perhaps a user friendly bail message when things bomb (if that isn't
Perhaps I should change the --help text to read, "Default: sqlite3 (or
MySQL if sqlite3 gem is not found)." ? That would be fine with me.