windows 设置 Rails 以使用 sqlserver
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/130547/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Setting up Rails to work with sqlserver
提问by FortunateDuke
Ok I followed the steps for setting up ruby and rails on my Vista machine and I am having a problem connecting to the database.
好的,我按照在 Vista 机器上设置 ruby 和 rails 的步骤进行了操作,但在连接到数据库时遇到了问题。
Contents of database.yml
的内容 database.yml
development:
adapter: sqlserver
database: APPS_SETUP
Host: WindowsVT06\SQLEXPRESS
Username: se
Password: paswd
Run rake db:migrate
from myapp directory
rake db:migrate
从 myapp 目录运行
----------
rake aborted!
no such file to load -- deprecated
ADO
阿多
I have dbi 0.4.0 installed and have created the ADO folder in
我安装了 dbi 0.4.0 并在其中创建了 ADO 文件夹
C:\Ruby\lib\ruby\site_ruby\1.8\DBD\ADO
C:\Ruby\lib\ruby\site_ruby\1.8\DBD\ADO
I got the ado.rb from the dbi 0.2.2
我从 dbi 0.2.2 得到了 ado.rb
What else should I be looking at to fix the issue connecting to the database? Please don't tell me to use MySql or Sqlite or Postgres.
我还应该注意什么来解决连接到数据库的问题?请不要告诉我使用 MySql 或 Sqlite 或 Postgres。
****UPDATE****
****更新****
I have installed the activerecord-sqlserver-adapter gem from --source=http://gems.rubyonrails.org
我已经从 --source= http://gems.rubyonrails.org安装了 activerecord-sqlserver-adapter gem
Still not working.
还是行不通。
I have verified that I can connect to the database by logging into SQL Management Studio with the credentials.
我已经验证我可以通过使用凭据登录到 SQL Management Studio 来连接到数据库。
rake db:migrate --trace
耙 db:migrate --trace
PS C:\Inetpub\wwwroot\myapp> rake db:migrate --trace
(in C:/Inetpub/wwwroot/myapp)
** Invoke db:migrate (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute db:migrate
rake aborted!
no such file to load -- deprecated
C:/Ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require'
C:/Ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require'
C:/Ruby/lib/ruby/gems/1.8/gems/activesupport-2.1.1/lib/active_support/dependencies.rb:510:in `require'
C:/Ruby/lib/ruby/gems/1.8/gems/activesupport-2.1.1/lib/active_support/dependencies.rb:355:in `new_constants_in'
C:/Ruby/lib/ruby/gems/1.8/gems/activesupport-2.1.1/lib/active_support/dependencies.rb:510:in `require'
C:/Ruby/lib/ruby/site_ruby/1.8/dbi.rb:48
C:/Ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require'
C:/Ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require'
C:/Ruby/lib/ruby/gems/1.8/gems/activesupport-2.1.1/lib/active_support/dependencies.rb:510:in `require'
C:/Ruby/lib/ruby/gems/1.8/gems/activesupport-2.1.1/lib/active_support/dependencies.rb:355:in `new_constants_in'
C:/Ruby/lib/ruby/gems/1.8/gems/activesupport-2.1.1/lib/active_support/dependencies.rb:510:in `require'
C:/Ruby/lib/ruby/gems/1.8/gems/activesupport-2.1.1/lib/active_support/core_ext/kernel/requires.rb:7:in `require_library_
or_gem'
C:/Ruby/lib/ruby/gems/1.8/gems/activesupport-2.1.1/lib/active_support/core_ext/kernel/reporting.rb:11:in `silence_warnin
gs'
C:/Ruby/lib/ruby/gems/1.8/gems/activesupport-2.1.1/lib/active_support/core_ext/kernel/requires.rb:5:in `require_library_
or_gem'
C:/Ruby/lib/ruby/gems/1.8/gems/activerecord-sqlserver-adapter-1.0.0.9250/lib/active_record/connection_adapters/sqlserver
_adapter.rb:29:in `sqlserver_connection'
C:/Ruby/lib/ruby/gems/1.8/gems/activerecord-2.1.1/lib/active_record/connection_adapters/abstract/connection_specificatio
n.rb:292:in `send'
C:/Ruby/lib/ruby/gems/1.8/gems/activerecord-2.1.1/lib/active_record/connection_adapters/abstract/connection_specificatio
n.rb:292:in `connection='
C:/Ruby/lib/ruby/gems/1.8/gems/activerecord-2.1.1/lib/active_record/connection_adapters/abstract/connection_specificatio
n.rb:260:in `retrieve_connection'
C:/Ruby/lib/ruby/gems/1.8/gems/activerecord-2.1.1/lib/active_record/connection_adapters/abstract/connection_specificatio
n.rb:78:in `connection'
C:/Ruby/lib/ruby/gems/1.8/gems/activerecord-2.1.1/lib/active_record/migration.rb:408:in `initialize'
C:/Ruby/lib/ruby/gems/1.8/gems/activerecord-2.1.1/lib/active_record/migration.rb:373:in `new'
C:/Ruby/lib/ruby/gems/1.8/gems/activerecord-2.1.1/lib/active_record/migration.rb:373:in `up'
C:/Ruby/lib/ruby/gems/1.8/gems/activerecord-2.1.1/lib/active_record/migration.rb:356:in `migrate'
C:/Ruby/lib/ruby/gems/1.8/gems/rails-2.1.1/lib/tasks/databases.rake:99
C:/Ruby/lib/ruby/gems/1.8/gems/rake-0.8.2/lib/rake.rb:621:in `call'
C:/Ruby/lib/ruby/gems/1.8/gems/rake-0.8.2/lib/rake.rb:621:in `execute'
C:/Ruby/lib/ruby/gems/1.8/gems/rake-0.8.2/lib/rake.rb:616:in `each'
C:/Ruby/lib/ruby/gems/1.8/gems/rake-0.8.2/lib/rake.rb:616:in `execute'
C:/Ruby/lib/ruby/gems/1.8/gems/rake-0.8.2/lib/rake.rb:582:in `invoke_with_call_chain'
C:/Ruby/lib/ruby/1.8/monitor.rb:242:in `synchronize'
C:/Ruby/lib/ruby/gems/1.8/gems/rake-0.8.2/lib/rake.rb:575:in `invoke_with_call_chain'
C:/Ruby/lib/ruby/gems/1.8/gems/rake-0.8.2/lib/rake.rb:568:in `invoke'
C:/Ruby/lib/ruby/gems/1.8/gems/rake-0.8.2/lib/rake.rb:2031:in `invoke_task'
C:/Ruby/lib/ruby/gems/1.8/gems/rake-0.8.2/lib/rake.rb:2009:in `top_level'
C:/Ruby/lib/ruby/gems/1.8/gems/rake-0.8.2/lib/rake.rb:2009:in `each'
C:/Ruby/lib/ruby/gems/1.8/gems/rake-0.8.2/lib/rake.rb:2009:in `top_level'
C:/Ruby/lib/ruby/gems/1.8/gems/rake-0.8.2/lib/rake.rb:2048:in `standard_exception_handling'
C:/Ruby/lib/ruby/gems/1.8/gems/rake-0.8.2/lib/rake.rb:2003:in `top_level'
C:/Ruby/lib/ruby/gems/1.8/gems/rake-0.8.2/lib/rake.rb:1982:in `run'
C:/Ruby/lib/ruby/gems/1.8/gems/rake-0.8.2/lib/rake.rb:2048:in `standard_exception_handling'
C:/Ruby/lib/ruby/gems/1.8/gems/rake-0.8.2/lib/rake.rb:1979:in `run'
C:/Ruby/lib/ruby/gems/1.8/gems/rake-0.8.2/bin/rake:31
C:/Ruby/bin/rake:19:in `load'
C:/Ruby/bin/rake:19
PS C:\Inetpub\wwwroot\myapp>
采纳答案by djenryte
I ran into the same problem yesterday. Apparently 'deprecated' is a gem, so you want to run "gem install deprecated" to grab and install the latest version. Good luck.
我昨天遇到了同样的问题。显然 'deprecated' 是一个 gem,所以你想运行“gem install deprecated”来获取并安装最新版本。祝你好运。
回答by John Naegle
I used and ODBC data source and the SQL Server adapter on Windows Server 2008 against SQL Server 2000 running on a remote instance.
我使用 ODBC 数据源和 Windows Server 2008 上的 SQL Server 适配器来对抗远程实例上运行的 SQL Server 2000。
Install SQL Server Adapter
安装 SQL Server 适配器
gem.bat install activerecord-sqlserver-adapter
Successfully installed deprecated-2.0.1
Successfully installed dbi-0.4.1
Successfully installed dbd-odbc-0.2.4
Successfully installed activerecord-sqlserver-adapter-2.2.22
4 gems installed
Create an ODBC datasource
创建 ODBC 数据源
- Type: SQL Server
- Name: rails_development
- Description: rails_development
- Server: SERVER
- SQL Authentication (sa/12345)
- Default Database: DATABASE
- 类型:SQL Server
- 名称:rails_development
- 描述:rails_development
- 服务器:服务器
- SQL 身份验证 (sa/12345)
- 默认数据库:DATABASE
Setup database.yml
设置数据库.yml
development:
adapter: sqlserver
mode: odbc
dsn: rails_development
username: sa
password: 12345
YMMV
青年会
A couple of helpful links:
几个有用的链接:
回答by Jarrod
If you're on a 64 bit machine, there are two ODBC administrator programs, one for 32 bit and one for 64 bit. activerecord-sqlserver-adapter looks for DSNs set up with the 32 bit version.
如果您使用的是 64 位计算机,则有两个 ODBC 管理员程序,一个用于 32 位,一个用于 64 位。activerecord-sqlserver-adapter 查找使用 32 位版本设置的 DSN。
回答by hectorsq
Did you install the SQL Server adapter?
您是否安装了 SQL Server 适配器?
gem install activerecord-sqlserver-adapter --source=http://gems.rubyonrails.org
回答by minikermit
回答by Amol
I too had faced this problem. There is another work around. You can create a DSN for the app db from control panel->admin tools->Odbc. Database.yml file should look like below:
我也遇到过这个问题。还有另一种解决方法。您可以从控制面板-> 管理工具-> Odbc 为应用程序数据库创建 DSN。Database.yml 文件应如下所示:
adapter: sqlserver
mode: odbc
dsn: DSN_NAME
host: localhost
database: App_development
username: uname
password: password
I tried using the deprecated gem, wasn't of much use. I had tried installing an ADO adaptor too which rendered useless.
我尝试使用已弃用的 gem,但没有多大用处。我也试过安装一个 ADO 适配器,但它变得毫无用处。