windows heroku运行rake db:migrate error“/ usr / bin / env:ruby.exe:没有这样的文件或目录” [英] windows heroku run rake db:migrate error "/usr/bin/env: ruby.exe: No such file or directory"

查看:159
本文介绍了windows heroku运行rake db:migrate error“/ usr / bin / env:ruby.exe:没有这样的文件或目录”的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在这里,我对Rails很陌生,并且遵循 Ruby on Rails教程的大部分。自那以后,我决定制作自己的应用程序,但在测试版中使用Rails 4 gem。我在本地机器上安装了PostgreSQL(Windows 7)并完成了开发。一切都很好! (我喜欢Rails远远超过C#,ASP,.NET工作,我为了生活而做的!)

然而,一旦我决定推向Heroku,我已经一直拉着我的头发。在推送到Heroku之前,我做了标准:

  c:\Sites\elms> git add。 
c:\Sites\elms> git commit -m我的评论
c:\Sites\elms> git push
c:\Sites\\elms> git push heroku master

我已经下载并安装了Heroku Toolbelt(不是 heroku Gemfile 指定了Ruby> = 1.9.3,所以我添加了ruby 1.9.3到我的 Gemfile 的顶部:

  source'https:// rubygems.org'
ruby​​1.9.3

gem'rails','4.0.0.beta1'

gem'pg'
gem'haml-rails'
gem'httparty'
gem'devise',git:'git://github.com/plataformatec/devise.git',分支:'rails4'
gem'cancan'
gem'bootstrap-sass'
gem'formtastic'
gem'formtastic-plus-bootstrap'

group:development do
gem'annotate'
gem'better_errors'
gem'binding_of_caller'
gem'guard-spor k'
gem'guard-rspec'
gem'meta_request'
gem'rb-notifu'
gem'schema_to_scaffold'
gem'wdm',:platforms = GT&; [:mswin,:mingw],:require => false
gem'win32console'
end

group:development,:test do
gem'rspec-rails'
gem'pry'
gem'spork-rails',git:'git://github.com/sahilm/spork-rails.git',分支:'rails-4'
gem'spork','〜> 1.0.0rc3'
end

group:test do
gem'capybara'
gem'factory_girl_rails'
gemshoulda-matchers
结束

组:资产do
gem'sass-rails','〜> 4.0.0.beta1'
gem'coffee-rails','〜> 4.0.0.beta1'
gem'uglifier','> = 1.0.3'
end

gem'jquery-rails'
gem'turbolinks'
gem'jbuilder','〜> 1.0.1'

推送最终没有任何问题,但是当我尝试迁移数据库时,我得到了以下内容:

pre $ c:\Sites\elms> heroku运行rake db:migrate
运行` rake db:migrate` attach to terminal ... up,run.2205
/ usr / bin / env:ruby.exe:没有这样的文件或目录

我也试过: heroku run bin / rake db:migrate ,并且它给出同样的错误。我正在使用 Heroku入门Rails 4.x 将我的Rails 4应用程序推向Heroku 。任何帮助将不胜感激!



哦,跑步后我也遇到过一个问题:

  c:\Sites\elmx> gem install rails --pre 

我通过向我的环境路径中添加 C:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\bin; 来解决此问题变量在Windows 7中(它给了我一个错误,当它试图执行任何事情时找不到rails):

  rails -v 
rails g控制器User

但是,如果我只输入:

  rails 

它会给我所有我可以使用的命令(就像运行 rails -h



我设置了我的机器通过使用Windows Rails安装程序,然后安装Rails 4 gem,这是非常令人沮丧的,我已经搜索了互联网,试图找到有相同问题的人。



编辑1:



我刚刚删除了我的用户Path环境变量,并修改了我的系统Path环境变量,如下所示:

  C:\RailsInstaller\Ruby1.9.3\bin; C:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\bin; C:\Program文件(x86)\git\cmd; C:\程序文件(x86)\Heroku\bin 

将我的路径变量更新到上面的并卸载的Heroku Toolbelt,然后重新安装它(因此Heroku的一部分在路径变量中)并尝试以下操作:

  c:\ Sites \elms> ruby​​ -v 
ruby​​ 1.9.3p125(2012-02-16)[i386-mingw32]

c:\ Sites \elms> rails -v
Rails 4.0.0.beta1

c:\Sites\elms> heroku -v
! `-v`不是一个heroku命令。
!也许你的意思是`-h`。
!有关可用命令的列表,请参阅`heroku help`。

c:\Sites\elms> heroku运行rake db:migrate
运行`rake db:migrate`附加到终端... up,run.2100
/ usr / bin / env:ruby.exe:没有这样的文件或目录

c:\Sites\elms> heroku run bin / rake db:migrate
运行`bin / rake db:migrate `附加到终端...运行.2872
/ usr / bin / env:ruby.exe:没有这样的文件或目录

编辑2:



所以我在这个冒险中进一步了一点。我发现我可以执行:

  c:\Sites\elms> heroku运行bash 
〜$ cd bin
〜/ bin $ ruby​​ rake db:migrate

然后运行rake并在Heroku上迁移我的数据库。但问题变得更糟!我尝试导航到页面,它告诉我有什么不对,所以我运行日志文件,这是我得到的:

  c:\Sites\elms> heroku日志
2013-03-16T05:34:20 + 00:00 heroku [api]:启用Logplex by
2013-03-16T05: 34:20 + 00:00 heroku [api]:发布v2由
创建2013-03-16T05:34:36 + 00:00 heroku [slugc]:Slug编辑开始
2013-03-16T05 :35:37 + 00:00 heroku [web.1]:用命令`bin / rails server -p 13423 -e $ RAILS_ENV`启动进程
2013-03-16T05:35:37 + 00:00 heroku [slugc]:Slug编译完成
2013-03-16T05:35:37 + 00:00应用[web.1]:bash:bin / rails:没有这样的文件或目录

2013-03-16T05:35:39 + 00:00 heroku [web.1]:退出状态为127
2013-03-16T05:35:39 + 00:00 heroku [web.1]:开始使用命令`bin / rails server -p 33539 -e $ RAILS_ENV`进行处理
2013-03-16T05:35:40 + 00:00 app [web.1]:/ usr / bin / env:ruby.exe :没有这样的文件或目录
2013-03-16T05:35:41 + 00:00 heroku [web .1]:进程已退出,状态为127
2013-03-16T05:35:41 + 00:00 heroku [web.1]:状态从开始更改为崩溃
2013-03-16T05:35 :41 + 00:00 heroku [web.1]:从崩溃状态变为开始
2013-03-16T05:35:44 + 00:00 heroku [web.1]:使用命令`bin / rails server -p 23452 -e $ RAILS_ENV`
2013-03-16T05:35:44 + 00:00 app [web.1]:/ usr / bin / env:ruby.exe:没有这样的文件或目录

这让人非常沮丧。我不知道什么是 / usr / bin / env 。我唯一能猜到的就是它就像Windows的 PATH 。如果是这样,为什么服务器不知道 ruby​​.exe 是哪里?



我做了一个非Rails 4应用程序,并能够发布到Heroku并查看它没有问题。这真的让我很紧张。

>

  bin / bundle 
bin / rails
bin / rake

改为

 #!/ usr / bin / env ruby.exe 

必须是

 #!/ usr / bin / env ruby​​ 

这就是为什么错误:

  / usr / bin / env:ruby.exe:没有这样的文件或目录

然后你就成功了:

  heroku运行rake db:migrate 

这对我很有用。


I'm pretty new to Rails here and I've followed Ruby on Rails Tutorial for most of it. I have since decided to make my own application, but using the Rails 4 gem in beta. I have installed PostgreSQL on my local machine (Windows 7) and done development. Everything works great! (I love Rails much more than C#, ASP, .NET work that I do for a living!)

However, once I decided to push to Heroku, I've been pulling my hair out. Prior to pushing to Heroku, I did the standard:

c:\Sites\elms>git add .
c:\Sites\elms>git commit -m "My comment"
c:\Sites\elms>git push
c:\Sites\elms>git push heroku master

I've downloaded and installed the Heroku Toolbelt (not heroku gem.) The first error told me I needed to make sure that my Gemfile specified Ruby >= 1.9.3, so I added "ruby 1.9.3" to the top of my Gemfile:

source 'https://rubygems.org'
ruby "1.9.3"

gem 'rails', '4.0.0.beta1'

gem 'pg'
gem 'haml-rails'
gem 'httparty'
gem 'devise', git: 'git://github.com/plataformatec/devise.git', branch: 'rails4'
gem 'cancan'
gem 'bootstrap-sass'
gem 'formtastic'
gem 'formtastic-plus-bootstrap'

group :development do
  gem 'annotate'
  gem 'better_errors'
  gem 'binding_of_caller'
  gem 'guard-spork'
  gem 'guard-rspec'
  gem 'meta_request'
  gem 'rb-notifu'
  gem 'schema_to_scaffold'
  gem 'wdm', :platforms => [:mswin, :mingw], :require => false
  gem 'win32console'
end

group :development, :test do
  gem 'rspec-rails'
  gem 'pry'
  gem 'spork-rails', git: 'git://github.com/sahilm/spork-rails.git', branch: 'rails-4'
  gem 'spork', '~> 1.0.0rc3'
end

group :test do
  gem 'capybara'
  gem 'factory_girl_rails'
  gem "shoulda-matchers"
end

group :assets do
  gem 'sass-rails',   '~> 4.0.0.beta1'
  gem 'coffee-rails', '~> 4.0.0.beta1'
  gem 'uglifier', '>= 1.0.3'
end

gem 'jquery-rails'    
gem 'turbolinks'
gem 'jbuilder', '~> 1.0.1'

The push finally worked without any issues, but when I tried to migrate the database, I got the following:

c:\Sites\elms>heroku run rake db:migrate
Running `rake db:migrate` attached to terminal... up, run.2205
/usr/bin/env: ruby.exe: No such file or directory

I have also tried: heroku run bin/rake db:migrate, and it gives same error. I am using Getting Started with Rails 4.x on Heroku to push my Rails 4 app to Heroku. Any help would be greatly appreciated!

Oh, I also had an issue after running:

c:\Sites\elmx>gem install rails --pre

I solved this by adding C:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\bin; to my environment Path variable in Windows 7 (it was giving me an error that it couldn't find rails when trying to execute anything such as:

rails -v
rails g controller User

But if I typed just:

rails

It would give me all of the commands I could use (as if running rails -h)

I set up my machine by using the Windows Rails Installer, then installing the Rails 4 gem. This is extremely frustrating and I've scoured the internet trying to find someone with the same problem.

EDIT 1:

I just deleted my user Path environment variable and modified my system Path environment variable to look like such:

 C:\RailsInstaller\Ruby1.9.3\bin;C:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\bin;C:\Program Files (x86)\git\cmd;C:\Program Files (x86)\Heroku\bin

Updated my path variable to the above and uninstalled Heroku Toolbelt, then re-installed it (hence why the Heroku piece is in the path variable) and tried the following:

c:\Sites\elms>ruby -v
ruby 1.9.3p125 (2012-02-16) [i386-mingw32]

c:\Sites\elms>rails -v
Rails 4.0.0.beta1

c:\Sites\elms>heroku -v
 !    `-v` is not a heroku command.
 !    Perhaps you meant `-h`.
 !    See `heroku help` for a list of available commands.

c:\Sites\elms>heroku run rake db:migrate
Running `rake db:migrate` attached to terminal... up, run.2100
/usr/bin/env: ruby.exe: No such file or directory

c:\Sites\elms>heroku run bin/rake db:migrate
Running `bin/rake db:migrate` attached to terminal... up, run.2872
/usr/bin/env: ruby.exe: No such file or directory

EDIT 2:

So I got a little further in this venture. I found out that I could execute:

c:\Sites\elms>heroku run bash
~ $ cd bin
~/bin $ ruby rake db:migrate

And that would then run rake and migrate my database on Heroku. But the problem gets worse! I try to navigate to the page and it tells me that there is something wrong, so I run the log file and this is what I get:

c:\Sites\elms>heroku logs
2013-03-16T05:34:20+00:00 heroku[api]: Enable Logplex by
2013-03-16T05:34:20+00:00 heroku[api]: Release v2 created by 
2013-03-16T05:34:36+00:00 heroku[slugc]: Slug compilation started
2013-03-16T05:35:37+00:00 heroku[web.1]: Starting process with command `bin/rails server -p 13423 -e $RAILS_ENV`
2013-03-16T05:35:37+00:00 heroku[slugc]: Slug compilation finished
2013-03-16T05:35:37+00:00 app[web.1]: bash: bin/rails: No such file or directory

2013-03-16T05:35:39+00:00 heroku[web.1]: Process exited with status 127
2013-03-16T05:35:39+00:00 heroku[web.1]: Starting process with command `bin/rails server -p 33539 -e $RAILS_ENV`
2013-03-16T05:35:40+00:00 app[web.1]: /usr/bin/env: ruby.exe: No such file or directory
2013-03-16T05:35:41+00:00 heroku[web.1]: Process exited with status 127
2013-03-16T05:35:41+00:00 heroku[web.1]: State changed from starting to crashed
2013-03-16T05:35:41+00:00 heroku[web.1]: State changed from crashed to starting
2013-03-16T05:35:44+00:00 heroku[web.1]: Starting process with command `bin/rails server -p 23452 -e $RAILS_ENV`
2013-03-16T05:35:44+00:00 app[web.1]: /usr/bin/env: ruby.exe: No such file or directory

This is getting really frustrating. I have no clue what the heck /usr/bin/env is. The only thing I can guess is that it's like PATH for Windows. If this is the case, why does the server not know where ruby.exe is?

I did make a non Rails 4 application and was able to post it to Heroku and view it with no issues. This is really getting on my nerves.

解决方案

You need to change in your application first line of the 3 files:

bin/bundle
bin/rails
bin/rake

Instead

#!/usr/bin/env ruby.exe

must be

#!/usr/bin/env ruby

That's why is error:

/usr/bin/env: ruby.exe: No such file or directory

Then you do successfully:

heroku run rake db:migrate

It's work for me.

这篇关于windows heroku运行rake db:migrate error“/ usr / bin / env:ruby.exe:没有这样的文件或目录”的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆