#改行コードエラーでHerokuへのマイグレーションに失敗した件
Herokuにアプリをアップロードする際に以下のエラーが発生し、
マイグレーションに失敗したので、その時の対処法をまとめておきます。
/usr/bin/env: ‘ruby\r’: No such file or directory
目次
動作環境
ホストOS : windows 10
ゲストOS実行環境 : Vagrant 2.2.5
ゲストOS : Ubuntu VERSION="16.04.6 LTS (Xenial Xerus)"
ruby : 2.6.3p62
rails : 5.2.4
エディタ: Atom
エラー内容
Herokuでマイグレーションをする際に以下のエラーが発生し、マイグレーションに失敗。
vagrant@ubuntu-xenial:~/workspace/rails_exercise/social_app$ heroku run rails db:migrate
Running rails db:migrate on ⬢ mysterious-plains-71936... up, run.9817 (Free)
/usr/bin/env: ‘ruby\r’: No such file or directory
また上記が発生する前にもローカル環境でwebサーバを起動する際に以下のwarningが発生していた。ただし、ローカル環境では特に問題なくアプリが動いていたため、Herokuのデプロイまでは無視していた。
vagrant@ubuntu-xenial:~/workspace/rails_exercise/social_app$ rails s -b 0.0.0.0
/home/vagrant/.rbenv/versions/2.6.3/bin/ruby: warning: shebang line ending with \r may cause problems
=> Booting Puma
* Listening on tcp://0.0.0.0:3000
Use Ctrl-C to stop
試したこと
ネットで調べるとどうやら改行コードに原因がありそうだということがわかったため、
Atomを開き改行コードを変更
その後、git commitをし、Heroku runをすると無事に成功
vagrant@ubuntu-xenial:~/workspace/rails_exercise/social_app$ heroku run rails db:migrate
おわりに
今後、このようなことが内容にAtomのデフォルトの改行コードをUnixのLF形式に変更しておきました。
変更方法:
Settings -> Packages -> Line Ending Selector -> change the “Default line ending” setting to “LF” instead of “OS Default”.