我去年四月开始使用Rails 2,但今年六月停止了,因为我认为在Rails 3发布时学习它会更实用,因为很多都是完全重构和重组的。我曾经使用Ubuntu 10.04(使用SQLite3作为默认数据库),但现在我使用的是Windows 7和MySQL 5.我已经安装了适用于MySQL的gem适配器,但要使用它我还需要调整database.yml。感谢。
答案 0 :(得分:25)
就数据库配置而言,除了如何加载MySQL驱动程序之外,Rails 2和3之间几乎没有什么变化。以前这是在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
声明行设置要使用的驱动程序。
答案 1 :(得分:7)
在tadman的回答中,使用gem'mysql2'作为rails 3,因为rails 3现在使用新的mysql适配器!!
答案 2 :(得分:3)
您可以在生成新应用程序时将rails更改为默认为MySql,但您必须在rails安装中编辑一行。您必须对每个版本进行更改,并且每次更新rails gem时都会进行更改。
我使用Ruby-Enterprise。所以这就是我的工作:
在文件中(其中1.8是ruby版本,3.0.4是rails版本):
/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
我可以做(并且为mysql2 gem配置了database.yml和Gemfiles):
rails new application_name
这假设您已经安装了正确的mysql2 gem。此外,自从Rails 3问世以来,我才这样做。它可能与以前的版本类似。同样,每次更新Rails时,您都必须查找并编辑该文件。
答案 3 :(得分:0)
从Rails 3.2开始,您可以使用自定义命令行选项定义.railsrc文件,该选项将始终应用于rails new
因此,如果您创建一个名为.railsrc
的文件并将其放在您的主目录中,并使用此-d mysql
这样的内容,它将使mysql成为您的默认数据库。您可以在其中放置任何命令行选项(包括超级棒的application templates!)
从命令行运行rails new --help
以查看所有选项。