Rails + SQL Server:在database.yml中放什么?

时间:2010-09-27 18:13:07

标签: ruby-on-rails sql-server windows

我正在尝试将Rails连接到SQL Server。我安装了activerecord-sqlserver-adapter和ruby-odbc gems,但我不知道该把什么放在我的database.yml文件中。

究竟什么是DSN,为什么需要它? (这是一些特定于Windows的事情吗?)

如果我想使用Windows身份验证而不是指定用户名和密码,该怎么办?

我尝试创建DSN,指定Windows NT身份验证,并在config.yml中添加以下内容:

development:
  adapter: sqlserver
  dsn: myDsn
  mode: odbc

但是我收到“指定的DSN包含驱动程序和应用程序之间的体系结构不匹配”错误。 [我尝试从Windows / system32 / odbcad32.exe创建DSN,因为谷歌搜索说这会创建一个32位的DSN,但我得到同样的错误。]

我在database.yml文件中遗漏了什么?

更新: 我尝试使用

development:
  adapter: sqlserver
  mode:odbc
  dsn: Provider=SQLOLEDB; Data Source=.\SQLEXPRESS; Integrated Security=SSPI

但我得到“未找到数据源名称且未指定默认驱动程序”错误。我的Provider可能不是SQLOLEDB吗? [我不知道提供商是什么或者如何弄清楚它应该是什么 - 我只是从我找到的另一个连接字符串中复制它。]我知道我可以使用我的Windows身份验证连接到。\ SQLEXPRESS实际的SQL Server Management Studio程序。

1 个答案:

答案 0 :(得分:2)

DSN是“数据库源名称”。它包含ODBC驱动程序连接到特定数据库所需的信息。

也许这个SO Q& A会帮助你:Connect rails application to SQL Server 2005 from Windows

另请参阅connectionstrings.com以获取有关连接字符串的一般帮助。