Can't rake:db migrate - 继续让 'rake 中止!加载错误' [重复]

Posted

技术标签:

【中文标题】Can\'t rake:db migrate - 继续让 \'rake 中止!加载错误\' [重复]【英文标题】:Can't rake:db migrate - Keep getting a 'rake aborted! load error' [duplicate]Can't rake:db migrate - 继续让 'rake 中止!加载错误' [重复] 【发布时间】:2014-10-22 15:57:24 【问题描述】:

我使用 Homebrew (brew install mysql) 安装了 MySQL,然后运行了 $ gem install mysql2。我在运行 OSX 10.9.4 的 Mac 上。

我将目录更改为我的应用程序的根目录,然后尝试运行rake db:migrate 命令,并收到此错误:

Levine_iMac$ rake db:migrate
rake aborted!
LoadError: dlopen(/Users/Levine_iMac/.rbenv/versions/2.1.1/lib/ruby/2.1.0/x86_64-darwin13.0/openssl.bundle, 9): Symbol not found: _SSLv2_client_method
  Referenced from: /Users/Levine_iMac/.rbenv/versions/2.1.1/lib/ruby/2.1.0/x86_64-darwin13.0/openssl.bundle
  Expected in: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib
 in /Users/Levine_iMac/.rbenv/versions/2.1.1/lib/ruby/2.1.0/x86_64-darwin13.0/openssl.bundle - /Users/Levine_iMac/.rbenv/versions/2.1.1/lib/ruby/2.1.0/x86_64-darwin13.0/openssl.bundle
/Users/Levine_iMac/Dropbox/Coding/Sandbox/simple_cms2/config/application.rb:3:in require'
/Users/Levine_iMac/Dropbox/Coding/Sandbox/simple_cms2/config/application.rb:3:in <top (required)>'
/Users/Levine_iMac/Dropbox/Coding/Sandbox/simple_cms2/Rakefile:4:in <top (required)>'
(See full trace by running task with --trace)
Levine_iMac$

我尝试向我的 .bash_profile 添加一些内容,如 here 所述,但没有奏效。

我尝试了here 中描述的 sudo 命令,但没有成功。

然后我尝试将我的 Ruby 版本从 2.1.1.. 更新到 2.1.2..,现在当我运行 rake:db migrate 时出现此错误

Levine_iMac$ rake db:migrate rake aborted! cannot load such file -- bundler/setup /Users/Levine_iMac/Dropbox/Coding/Sandbox/simple_cms2/config/boot.rb:4:in '<top (required)>' /Users/Levine_iMac/Dropbox/Coding/Sandbox/simple_cms2/config/application.rb:1:in '<top (required)>' /Users/Levine_iMac/Dropbox/Coding/Sandbox/simple_cms2/Rakefile:4:in '<top (required)>' (See full trace by running task with --trace) Levine_iMac$ bundle install rbenv: bundle: command not found The 'bundle' command exists in these Ruby versions: 2.1.1 Levine_iMac$

关于如何解决这个问题的任何想法?谢谢。

【问题讨论】:

我试过了。现在当我运行 rake:db migrate Levine_iMac$ rake db:migrate rake aborted! cannot load such file -- bundler/setup /Users/Levine_iMac/Dropbox/Coding/Sandbox/simple_cms2/config/boot.rb:4:in '&lt;top (required)&gt;' /Users/Levine_iMac/Dropbox/Coding/Sandbox/simple_cms2/config/application.rb:1:in '&lt;top (required)&gt;' /Users/Levine_iMac/Dropbox/Coding/Sandbox/simple_cms2/Rakefile:4:in '&lt;top (required)&gt;' (See full trace by running task with --trace) Levine_iMac$ bundle install rbenv: bundle: command not found The 'bundle' command exists in these Ruby versions: 2.1.1 时出现此错误 最后一行有一条线索:“command not found The 'bundle' command exists in these Ruby versions: 2.1.1”。试试gem install bundler(升级 ruby​​ 后需要)。 那行得通。谢谢@paulwise!感谢所有做出贡献的人。 【参考方案1】:

好吧,当您运行 rake db:migrate 时,您究竟期望发生什么?下一步会为你实现吗?如果你能回答这个问题,你就会明白为什么你所做的事情没有意义。

我会详细说明:

rake db:migrate 仅适用于现有 Rails 应用程序的上下文。运行 'gem install mysql2' 将在您的计算机上为您获取该库(此命令自行执行,它实际上与 Rails 本身没有任何关系,或者需要 Rails 应用程序作为上下文)。因此,两者之间没有线性联系。

    rails new myapp 在 Gemfile 中添加“gem mysql2” 捆绑 rake db:create

或者,或者:

rails new myapp -d mysql

【讨论】:

什么让你觉得他不在现有的 Rails 应用程序中? 不管他是不是,因为'gem install mysql2'是一个与Rails应用程序无关的命令,它只是将库安装到您的计算机上。在他的应用程序中运行 rake db:migrate,在安装 mysql2 之前和之后,将输出相同的结果。 你好。我确实有一个现有的 Rails 应用程序,我一直在另一台计算机上工作。我在这台计算机上安装了所有东西,创建了相同的命名数据库,并且需要迁移以填充它。这是我得到错误的地方。我尝试了上面再次安装 Ruby 的建议(顺便说一下,这是从 2.1.1.. 升级到 2.1.2..)。现在我收到一个新错误(上图)。谢谢。

以上是关于Can't rake:db migrate - 继续让 'rake 中止!加载错误' [重复]的主要内容,如果未能解决你的问题,请参考以下文章

markdown rake db:reset,rake db:migrate:resetの违い

rake db:migrate不执行任何操作

如何使用 rake db:migrate 仅回滚一步

在 Heroku 上执行 rake db:migrate 时出错

使用 rake db:migrate 迁移数据不会改变它

尝试 rake db:migrate 时未在 rails 项目中选择数据库