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"
问题描述
在这里,我对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'
ruby1.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屋!