Activerecord如何“知道”它应该使用哪个适配器?

时间:2014-03-07 21:13:50

标签: ruby-on-rails activerecord

我对Rails及其内部结构都很陌生,我想知道Activerecord如何'知道'它应该使用哪个适配器? 我知道当你创建一个rails项目时,你可以设置你将使用的数据库,如rails new project -d mysql。 我试图找出它在Activrecord的代码上是如何工作的,但我不知所措,我无法找到魔法发生的地方。

2 个答案:

答案 0 :(得分:1)

通过查看Ryan Bates关于从Sqlite3迁移到Postgres的RailsCast,您可以了解Rails如何适应不同的数据库。

阅读迁移现有应用程序部分:http://railscasts.com/episodes/342-migrating-to-postgresql?view=asciicast

正如您所看到的,魔术发生在database.yml文件中。这些设置中存在哪个适配器是Rails将使用的。

要更深入地了解处理此问题的代码,请查看activerecord/lib/active_record/connection_adapters/connection_specification.rb文件。

答案 1 :(得分:0)

它在config / database.yml文件中设置

Database.yml是配置文件,告诉rails有关数据库,数据库信息,如

  1. 数据库主机/机器
  2. 选择哪个数据库(mySQL,Oracle,Sqlite等)
  3. 用户名
  4. 密码
  5. More about database.yml