ボクココ

個人開発に関するテックブログ

Herokuを使ってRailsアプリ構築 作ったアプリが全世界に公開! -Windowの場合-

Windowでは便利なInstant Railsを使ってRailsアプリを作ります。
それができたら、誰でも世界に公開したくなるはず。
そうなったら、Herokuのサーバに本番環境を配置!

最後の最後でデータベースの問題で上手くいきませんでしたが、そこまでの経緯をメモしておきます。
基本的に、

 にお世話になりました。ということでここに書いてあること以外で苦戦した所を色々書いておきます。


まずHerokuをGemに入れる。


gem install heroku
その後に

heroku keys:add
をやるんだけども、これがうまくいかなくて最も時間がかかった。
このkeyは、データを送るのに暗号化するためのもの。
http://sshwindows.sourceforge.net/download/
http://www15.plala.or.jp/h-kihara-home/prog/linux/ssh.html
ホームディレクトリに.sshフォルダってのを自分で作らないといけないっぽい。あと、D:\OpenSSH\bin\ssh-keygen.exe; みたいな感じで環境変数にPATHを入れておく。

ssh-keygen -t dsa
そこで出来た.ssh/id_dsa.pubファイルがあれば、先ほどのkeys:addが上手くいくはず。

次にgitというのが必要。これはSubversionみたいなバージョン管理システムだそうだ。
http://code.google.com/p/msysgit/downloads/list
ここのexeファイルをダウンロード。windowsのコマンドプロンプトで利用できるように設定。先ほどと同様に環境PATHを設定→D:\Git\Git\bin\git.exe;みたいな感じで。上手くいけば下のコードが実行できる。

git init
git add .
git commit -m "first commit"
ここで注意してほしいのは、git addで自分の追加したいRailsアプリのフォルダを指定してあげなきゃならんということ。こうしないと、またあとで色々とつまずく。
やってみると、Windows特有?の問題で改行の関係でWarningが大量に出没。仕方ないので、それを変換するソフト
http://www.vector.co.jp/soft/win95/util/se296459.html?ds
これでRailsアプリのコードをそれぞれCtrlでドラッグしてそこのexeファイルに持って行ってちょくちょくと変換。。それで上手くWarningを消せた。

heroku create
git push heroku master
srcなんとかってエラーが出てきたら、git remote rm heroku を使って消去する必要があったような気がする。そんでgit initからやり直してみてください。
そこでできたRailsアプリを見てみると、最初のページだけは上手く見れた。でもそこから先が見れない。DBを使ったサイトは見れないようだ。
heroku rake db:migrate 
ここでマイグレートしてみた所、MySQLはHerokuに対応していないとのこと。Postgreらしいっす。 調べてみると、tapsというのを用いればいけそうなことを発見。http://docs.heroku.com/taps
gem install taps 

ここでエラーが来て、なぜかSQLiteがいるみたいなことを言われた。なのでそれを入れてみる
gem install sqlite3-ruby --version '= 1.2.3' 
そのあともう一度tapsを入れてみると、無事成功。
そこで、いよいよDBの移行をチャレンジしてみる。
heroku db:push 
すると、なぜか意味不明な箇所でRubyファイルがエラー。Rubyのバージョンが違うからダメなようだ。もうここまできたらヤケクソで、そのエラーの部分をコメントアウト。 すると、先に進めた。しかしエラー。
Failed to connect to database:
Sequel::AdapterNotFound -> LoadError: no such file to load -- mysql
お疲れ様です。俺はここで詰みました。
始めからPostgreのDBでRailsアプリ作っていれば、上手く行ったはずです。そう考えてよしとしました。今度はUbuntuでもチャレンジしてみよう。
にしてもインフラ系って大変だ。細かい所まで完全に理解していないと下手にアプリケーションも使えない。 こういうのに難しさを感じます。


何か打開策があれば、教えていただけると嬉しい限りです。