去年四月份我开始使用Rails 2,但在六月份停止了,因为我认为学习Rails 3更实际,因为很多代码都进行了重构和重组。我之前使用Ubuntu 10.04(默认数据库是SQLite3),但现在我使用的是Windows 7和MySQL 5。我已经安装了适用于MySQL的gem适配器,但仍需要调整database.yml才能使用它。谢谢。
去年四月份我开始使用Rails 2,但在六月份停止了,因为我认为学习Rails 3更实际,因为很多代码都进行了重构和重组。我之前使用Ubuntu 10.04(默认数据库是SQLite3),但现在我使用的是Windows 7和MySQL 5。我已经安装了适用于MySQL的gem适配器,但仍需要调整database.yml才能使用它。谢谢。
就数据库配置而言,Rails 2 和 3之间没有太多变化,除了你加载MySQL驱动程序的方式。以前是在config/environment.rb
中完成,现在则是在Gemfile
中完成:
gem 'mysql'
默认的config/database.yml
文件配置为SQLite,但是你可以轻松地将其更改为MySQL。一个通用的版本如下:
defaults: &defaults
adapter: mysql
username: localdev
password: mylocaldevpasswordwhateveritis
host: localhost
development:
<<: *defaults
database: project_dev
test:
<<: *defaults
database: project_test
就是 adapter
声明行设置了使用哪个驱动程序。
/opt/ruby-enterprise/lib/ruby/gems/1.8/gems/railties-3.0.4/lib/rails/generators/rails/app/app_generator.rb
编辑:在rails-3.1.0-rc1中,该文件为:
gems/railties-3.1.0.rc1/lib/rails/generators/app_base.rb
寻找此行:
class_option :database, :type => :string, :aliases => "-d", :default => "sqlite3",
将“sqlite3”更改为“mysql”。
class_option :database, :type => :string, :aliases => "-d", :default => "mysql",
因此,我们不应该这样做:
rails new application_name -d mysql
rails new application_name
假设您已经安装了正确的mysql2 gem。此外,自Rails 3推出以来,我一直在这样做。对于之前的版本可能类似。同样,每次更新Rails时,您都需要找到并编辑该文件。
自Rails 3.2以来,您可以定义一个名为.railsrc的文件,并使用自定义命令行选项,这些选项将始终适用于rails new。
因此,如果您创建一个名为.railsrc的文件,并将其放在主目录中,并将其内容设置为-d mysql
,它将使mysql成为您的默认数据库。您可以在其中放置任何命令行选项(包括应用程序模板,这些模板非常棒!)
从命令行运行rails new --help
以查看所有选项。
rails new
命令中传递参数--database=mysql
(或者在shell中创建别名 - 如果在Windows系统上,也许需要将该命令包装在cmd脚本中)。此外,你也可以创建一个应用程序模板:http://railscasts.com/episodes/148-app-templates-in-rails-2-3。 - Brian