我是Rails的新手,我正在关注如何制作Rails应用程序tutorial。我无法将数据库迁移到我的heroku应用程序。
我目前正处于第3章的开头,尝试设置一个应用程序以用于课程的其余部分。
我一直在完美地关注这个教程,到目前为止,我已经构建了两个应用程序并将它们部署到heroku并将数据迁移得很好,但第三次它没有工作。
我能够创建heroku页面并将应用程序推送到它,但我无法迁移数据。
我打字:
heroku run rake db:migrate
并收到此错误:
/usr/bin/env: ruby.exe: No such file or directory.
我假设这意味着它正在寻找该目录中的文件而没有找到它。我如何改变它的外观?
我检查了“windows heroku run rake db:migrate error “/usr/bin/env: ruby.exe: No such file or directory””并做了推荐的答案,也就是说,在bin / bundle,bin / rails和bin / rake中将“ruby.exe”更改为“ruby”,但是没有工作。
还有其他提示吗?我被困在这几个小时。非常感谢你。
答案 0 :(得分:1)
该命令通常为heroku run rake db:migrate
。你应该尝试而不是heroku run rails db:migrate
。
确保您已将应用推送到heroku。当它推送到heroku时,请确保它也被检测为rails应用程序。 heroku可能没有检测到rails应用程序,因此它设置的环境没有安装ruby。但它可能只是命令名称中的错误(rails
而不是rake
)。
答案 1 :(得分:1)
我在从Windows移植过的存储库中遇到了类似的问题。
事实证明,应用程序bin目录中的几个脚本仍然有一个shebang行(#!/usr/bin/env ruby.exe
)到ruby.exe
而不是ruby
。一旦我修复了这些脚本,问题就消失了。
答案 2 :(得分:-1)
在你的本地开发机器上,在提交git(然后推送到Heroku)之前,尝试将行结尾更改为Unix行结尾(而不是Windows行结尾)。在* nix机器上,您可以通过运行dos2unix myfile.rb
如果行结尾错误,Heroku上加载的Linux将查找ruby^M
而不是ruby
,并且当然不会找到它,并提供此确切的错误消息。