我在Windows 10上编写了一个Ruby on Rails应用程序,在开发中使用SQLite3
但需要在生产中使用SQLServer
。我使用的是Ruby 2.3.3和Rails 5.1.4。
我在tiny_tds
中添加了activerecord-sqlserver-adapter
和Gemfile
个宝石并运行了'bundle install'
。这似乎已成功完成。然后我运行'rails db:migrate RAILS_ENV=production'
并收到错误'LoadError: cannot load such file -- tiny_tds/tiny_tds'
。
完整的错误消息输出如下。你能否告诉我问题可能是什么以及我可以做些什么来解决它。
$ rails db:migrate RAILS_ENV=production
rails aborted!
LoadError: cannot load such file -- tiny_tds/tiny_tds
c:/Sites/turkeytote/config/application.rb:7:in <top (required)>' c:/Sites/turkeytote/Rakefile:4:inrequire_relative'
c:/Sites/turkeytote/Rakefile:4:in <top (required)>' bin/rails:4:inrequire'
bin/rails:4:in `
'
LoadError: 126: The specified module could not be found. - c:/RailsInstaller/Ruby2.3.3/lib/ruby/gems/2.3.0/gems/tiny_tds-2.1.0-x86-mingw32/lib/tiny_tds/2.3/tiny_tds.so
答案 0 :(得分:1)
我最近遇到了这个问题,事实证明,这个问题是由于Ruby DevKit没有包含在我的Windows系统和用户PATH变量中造成的。
我使用的是http://railsinstaller.org/en中的Windows Ruby 2.3 Rails安装程序,默认情况下,该程序将Ruby(及相关库)安装在C:\ RailsInstaller位置。
如果打开命令提示符并浏览到C:\ RailsInstaller \ DevKit,然后运行“ devkitvars.bat”文件,这会将相关路径添加到PATH变量中: C:\ RailsInstaller \ DevKit \ bin; C:\ RailsInstaller \ DevKit \ mingw \ bin;
完成此操作后,tiny_tds起作用了,我的rails db:migrate
命令终于成功了。
注意:这不是永久解决方案。要永久解决此问题,您需要实际编辑Windows PATH设置。
设置PATH(在Windows 10和Windows 8上)
path
,以确保所做的更改有效。