1

我使用 Capistrano 部署使用mysql2适配器的 Rails 3.2.1 应用程序。

该应用程序在 Windows 上本地运行良好,但是当我尝试部署到 linux 服务器时,Capistrano 抛出以下错误:

Please install the mysql2 adapter: gem install activerecord-mysql2-adapter (mysql2 is not part of the bundle. Add it to Gemfile.)

请注意,我正在 GIT 上跟踪 Gemfile.lock 但我注意到了这一点:

...
mysql2 (0.3.11-x86-mingw32)
...

锁定文件锁定了版本,这很好,但我认为它锁定了 Windows 版本(x86-mingw32),这可能无法在 linux 上运行。

有人有同样的问题吗?我不想取消跟踪 Gemfile.lock 因为不推荐。

deploy.rb的就像:

require "bundler/capistrano"
load "deploy/assets"

... configuration here ...

PS我还注意到其他宝石被这部分“x86-mingw32”锁定,比如bcrypt-ruby

4

1 回答 1

0

不要担心 Gemfile.lock 中有任何带有“mingw32”的 gem。看看你的 Gemfile。你有以下行吗?

gem 'mysql2'

鉴于此,您是否bundle install在 linux 服务器上运行(或者您是否将此功能添加到您的 capistrano 配方中?)

顺便说一句,如果您有任何特定于 Windows 的 gem,并且您想确保它们仅在此上下文中加载,请使用以下条件:

platforms :mswin, :mingw do
  # placeholder for gems in a windows environment
end
于 2012-11-12T22:49:03.500 回答