Ruby on rails Rails如何通过database.yml找到正确的数据库适配器?

Ruby on rails Rails如何通过database.yml找到正确的数据库适配器?,ruby-on-rails,database,postgresql,Ruby On Rails,Database,Postgresql,database.yml文件有一个适配器:postgresql,这如何引导rails服务器连接到postgres程序?如果我在本地运行服务器,Rails是否会通过我的路径或其他东西查找我的postgres的安装位置?答案在数据库中非常正确。yml注释: # The TCP port the server listens on. Defaults to 5432. # If your server runs on a different port number, change accordi

database.yml文件有一个
适配器:postgresql
,这如何引导rails服务器连接到postgres程序?如果我在本地运行服务器,Rails是否会通过我的
路径
或其他东西查找我的postgres的安装位置?

答案在
数据库中非常正确。yml
注释:

 # The TCP port the server listens on. Defaults to 5432. 
 # If your server runs on a different port number, change accordingly. 
 # port: 5432

因此,如果您已经完成了普通安装,那么rails只使用端口5432连接到您的数据库并与数据库通信。

数据库是客户机-服务器软件。因此,您的rails应用程序通过主机名/IP地址、端口号和数据库凭据(用户名/密码)连接到数据库服务器,这些凭据可以存在于网络上的任何位置

如果您正在本地主机上开发rails应用程序,并且在正在开发的同一台计算机上安装了数据库二进制文件。然后,为了连接到该db服务器,您必须在本地主机上运行一个数据库守护进程,监听一个端口(对于postgresql,DEAFULT端口是
5432
)。您可以使用
netstat-an | grep5432

development:
  adapter: postgresql
  encoding: utf8
  database: app_dev
  username: dev_user
  password: dev_pass
  host: localhost
  port: 5432
如果使用不同的端口号,则可以更改应用程序的
config/database.yml
上的端口号(如果未指定端口号并使用postgresql适配器,则假定默认端口号
5432


嗯,它不需要知道它安装在哪里。它连接到一个名为postgres的正在运行的服务,该服务在本地主机端口5432上运行,除非您对此进行更改。因此rails使用端口5432进行侦听,而postgres默认情况下会自动设置为连接到端口5432上侦听的任何内容,所以它们就是这样连接的?谢谢@sa77!rails服务器和数据库之间似乎存在一种客户机-服务器关系,rails作为客户机为db服务器ping数据。为了让它们连接,它们通过端口5432。当用户启动postgres时,默认情况下会生成一个程序(守护进程),该程序负责在端口5432上侦听希望与之交互的其他程序。从这个意义上讲,守护进程就像一个API。在rails的database.yml中,它将连接到端口5432上的任何db,因此它将通过用户计算机上的该端口并点击守护进程以访问postgres?是的。。守护进程是后台运行的postgres服务器,它侦听端口
5432
,以获取对数据库表的任何API请求。
database.yml
文件上的数据库名称、端口号、数据库用户名和密码配置定义了rails应用程序的ORM库(ActiveRecord::Base),用于为应用程序中的数据访问哪个数据库。。您可以通过
activerecod::Base.connection
从您的
rails控制台查看rails应用程序和postgres之间的db连接的详细信息。