Tuesday 27 March 2012

TapsによるHeroku へのデータベースマイグレーション

Taps を使用し、Herokuにデータベースの内容を移動しようとしたときに少し困ったので書いておきます。

まずインストラクション通りに下のコマンド

$ heroku db:push sqlite://db/development.sqlite3 --app myapp

を実行して得られたのが下のようなエラーメッセージ。失敗です。

Taps Server Error: PGError: ERROR: time zone displacement out of range:

私が開発に使用している環境は rvm を使用してRubyのバージョンを管理し、このときは1.9.3を使っていました。http://bit.ly/GWnltC のポストにも書かれている通り、1.9.3はHerokuでは問題があるので1.9.2を導入してみました。

実はrvm 1.9.2の導入に際しても問題があり、Xcode 4.3とcommand line tools を導入してインストールされるgccを使用するとRuby 1.9.2がインストールできません。そのためhttps://github.com/kennethreitz/osx-gcc-installer からnon-LLVMのgccをダウンロードしてインストールし、

$ CC=/usr/bin/gcc-4.2 rvm install 1.9.2

で無事Ruby1.9.2のインストールができました。実はRuby 1.9.2でもHeroku で違う問題が出たので、rvm でRuby 1.8.7 を導入して heroku db:push を実行したところ、問題なくデータのexportができました。

No comments:

Post a Comment