2010-09-01 96 views
13

去年4月我开始使用Rails 2,但是今年6月停止了,因为我认为在Rails 3发布时学习它会更实用,因为它的很多都是完全重构和重构的。我曾经使用Ubuntu 10.04(SQLite3作为默认数据库),但现在我使用的是Windows 7和MySQL 5.我已经安装了MySQL的gem适配器,但要使用它,我仍然需要调整database.yml。谢谢。如何将MySQL设置为Rails 3中的默认数据库?

回答

25

就数据库配置而言,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报关行。

+0

有没有办法让MySQL的默认,而不是sqlite? – 2010-09-01 14:25:31

+0

对于新项目?不容易。这是Rails的核心功能。通常情况下,人们会根据需要为新应用程序准备一个“框架”项目,其中包含数据库驱动程序,插件和宝石,然后将它们复制到新项目中。这样,无论多么奇特,你都可以拥有任何你喜欢的默认设置。 – tadman 2010-09-01 15:00:54

+0

谢谢。所以我不能把它作为新项目的默认值。 – arscariosus 2010-09-01 15:31:52

7

在tadman的回答中,使用gem'mysql2'作为rails 3,因为rails 3现在使用了新的mysql适配器!

+0

此外,在database.yml'适配器:mysql' - >'适配器:mysql2' – 2014-06-13 18:02:12

3

当您生成新的应用程序时,您可以将导轨更改为默认的MySql,但您必须在导轨安装中编辑一行。您必须对每个版本进行更改,并且每次更新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 

编辑:在轨-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 

我可以做(和database.yml中和Gemfiles被配置为mysql2宝石):

rails new application_name 

这里假设你有已经安装了正确的mysql2 gem。另外,自Rails 3问世以来,我一直这样做。它可能与以前的版本类似。同样,每次更新Rails时,都必须找到并编辑该文件。

+1

我使用RVM与Ruby 1.9.2和Rails 3,并找到我的文件的路径:$(rvm gemdir )/gems/railties-3.0.5/lib/rails/generators/rails/app/app_generator.rb。导师完美地工作。 – gunit888 2011-03-30 14:49:40

0

由于Rails的3.2,你可以定义自定义命令行选项的.railsrc文件,将始终适用于rails new

因此,如果您创建一个名为.railsrc,并把它放在你的home目录W /喜欢的内容这-d mysql它将使MySQL成为您的默认数据库。你可以把任何命令行选项放在那里(包括application templates这是超棒的!)

从命令行运行rails new --help以查看所有选项。