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

时间:2017-10-12 17:33:49

标签: ruby-on-rails tiny-tds

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

我在tiny_tds中添加了activerecord-sqlserver-adapterGemfile个宝石并运行了'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

1 个答案:

答案 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上)

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