【问题标题】:Why can't the file tiny_tds.so be found?为什么找不到 tiny_tds.so 文件?
【发布时间】:2018-07-24 07:46:38
【问题描述】:

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

我将tiny_tdsactiverecord-sqlserver-adapter gem 包含在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

【问题讨论】:

  • 您在哪里托管您的应用程序?安装是否顺利(没有失败的 gem 安装等)?
  • 应用托管在公司内网。我在本地使用 SQLite3 数据库对其进行了测试,它工作正常。问题是当我尝试在生产中使用 SQLServer 数据库时。
  • 我仍然不是 Rails 专家,但我通过 Heroku 托管我的应用程序,当我迁移时,我在 Heroku 控制台上输入,甚至不必提及环境。它是隐含的。当您执行db:migrate RAILS_ENV=production 时,您是在公司服务器上而不是在您的本地计算机上执行此操作吗? (对不起,如果这听起来微不足道但更好的检查)
  • 我将 tiny_tds gem 更改为 1.3.0 版,问题就消失了。

标签: ruby-on-rails tiny-tds


【解决方案1】:

我最近遇到了这个问题,原来是因为我的 Windows 系统和用户 PATH 变量中没有包含 Ruby DevKit。

我使用的是来自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 以确保您的更改生效。

【讨论】:

    猜你喜欢
    • 2011-12-14
    • 2010-10-12
    • 1970-01-01
    • 2022-11-29
    • 2023-03-31
    • 2021-12-09
    • 2011-04-27
    • 2016-10-20
    • 1970-01-01
    相关资源
    最近更新 更多