去年4月我开始使用Rails 2,但是今年6月停止了,因为我认为在Rails 3发布时学习它会更实用,因为它的很多都是完全重构和重构的。我曾经使用Ubuntu 10.04(SQLite3作为默认数据库),但现在我使用的是Windows 7和MySQL 5.我已经安装了MySQL的gem适配器,但要使用它,我仍然需要调整database.yml。谢谢。如何将MySQL设置为Rails 3中的默认数据库?
回答
就数据库配置而言,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
报关行。
在tadman的回答中,使用gem'mysql2'作为rails 3,因为rails 3现在使用了新的mysql适配器!
此外,在database.yml'适配器:mysql' - >'适配器:mysql2' – 2014-06-13 18:02:12
当您生成新的应用程序时,您可以将导轨更改为默认的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时,都必须找到并编辑该文件。
我使用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
由于Rails的3.2,你可以定义自定义命令行选项的.railsrc文件,将始终适用于rails new
因此,如果您创建一个名为.railsrc
,并把它放在你的home目录W /喜欢的内容这-d mysql
它将使MySQL成为您的默认数据库。你可以把任何命令行选项放在那里(包括application templates这是超棒的!)
从命令行运行rails new --help
以查看所有选项。
- 1. 如何将pgsql设置为laravel的默认数据库
- 2. 通过PostgreSQL将默认值设置为数据库中的列
- 3. 用php为MySQL数据库设置用户的默认图像
- 4. 设置默认列从Rails中的数据库拉
- 5. 在Sqlite数据库中将默认图像设置为列
- 6. CPanel/MySql ENUM将默认设置为''?
- 7. Mysql设置为默认?
- 8. Rails 3 inherited_resources忽略'默认'设置
- 9. MySQL的默认数据库
- 10. 如何将[ScaffoldColumn(false)]设置为动态数据的默认值?
- 11. 如何在MySql中将默认值设置为sysdate?
- 12. 将默认颜色设置为Android库
- 13. 将默认值设置为Mysql中的数字列
- 14. 如何在数据库中设置sqldatasource默认值在c#中?
- 15. 如何将'global'设置为默认gemset?
- 16. 设置数据库的默认值,如果值为空
- 17. Heroku和默认数据库设置
- 18. 导入MySQL数据库从.SQL设置默认表的MyISAM
- 19. MYSQL:如何在插入期间将NULL或空数据默认设置为0
- 20. 如何设置默认值的MySQL
- 21. Rails的time_select设置默认
- 22. 将document.title设置为默认
- 23. 如何设置默认值:Rails
- 24. 如何在cakephp 3的模型中设置默认函数?
- 25. 如何为SQL Server数据库中的所有身份设置默认种子?
- 26. Django设置默认数据
- 27. MySQL - 将表设置为默认值,如果为空前缀
- 28. 如何在SQL Server中将函数设置为默认值?
- 29. 如何将'可用数据库'设置为您正在使用的默认数据库?
- 30. Rails 3为响应设置默认操作
有没有办法让MySQL的默认,而不是sqlite? – 2010-09-01 14:25:31
对于新项目?不容易。这是Rails的核心功能。通常情况下,人们会根据需要为新应用程序准备一个“框架”项目,其中包含数据库驱动程序,插件和宝石,然后将它们复制到新项目中。这样,无论多么奇特,你都可以拥有任何你喜欢的默认设置。 – tadman 2010-09-01 15:00:54
谢谢。所以我不能把它作为新项目的默认值。 – arscariosus 2010-09-01 15:31:52