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