为什么找不到文件tiny_tds.so?

我在Windows 10上编写了一个Ruby on Rails应用程序,它在开发中使用SQLite3 ,但需要在生产中使用SQLServer 。 我使用的是Ruby 2.3.3和Rails 5.1.4。

我在tiny_tds包含tiny_tdsactiverecord-sqlserver-adapter gems并运行'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 ' c:/Sites/turkeytote/Rakefile:4:inrequire_relative' c:/Sites/turkeytote/Rakefile:4:in ' 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 

我最近遇到了这个问题,事实certificate问题是由于Ruby DevKit没有包含在我的Windows系统和用户PATH变量中。

我使用的是http://railsinstaller.org/en中的Windows Ruby 2.3 Rails安装程序,它默认在C:\ RailsInstaller位置安装Ruby(及相关库)。

如果打开命令提示符并浏览到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上)

  1. 在搜索中,搜索然后选择:系统(控制面板)
  2. 单击“高级系统设置”链接。
  3. 单击“环境变量”。
  4. 在“系统变量”部分中,找到PATH环境变量并选择它。 单击编辑。 如果PATH环境变量不存在,请单击“新建”。
  5. 在“编辑系统变量”(或“新建系统变量”)窗口中,指定PATH环境变量的值。
  6. PATH变量应包含此字符串:“C:\ RailsInstaller \ DevKit \ bin; C:\ RailsInstaller \ DevKit \ mingw \ bin;”
  7. 单击确定。
  8. 单击“确定”关闭所有剩余窗口。
  9. 打开新的命令提示符并键入path以确保更改生效。