LoginSignup
0
0

More than 5 years have passed since last update.

Rails Tutorial のhello appをIBM Bluemixにデプロイしようとしてはまった件

Last updated at Posted at 2016-06-28

経緯

Rails Tutorialをやっていて、ローカルやHerokuではちゃんと動作するのにIBM Bluemixではそのままデプロイできませんでした。
manifest.ymlやコマンドの実行などで上手くいっていないと思いきや、ログをちゃんと見てみるとデータベースの問題でした。hello appではデータベースを使っていなかったため、かなり盲点となってはまりました。

結果的には、Gemfileで以下の設定がされていました。(抜粋)

group :development, :test do
  gem 'sqlite3', '1.3.9'
end

group :production do
  gem 'pg', '0.17.1'
end

Herokuではsqliteが使用できないようなので、hello appではデータベースを使わないのに、データベースをpostgresに変更しています。しかしdatabase.ymlにデフォルトのデータベースとしてsqliteを設定しているため、sqliteをロードしようとして、エラーになっていたようです。
Herokuではtoy appでもdatabase.ymlは変更していないので、そこは見ていないということなのでしょうか。
とりあえずIBM Bluemixでデプロイするときは、sqliteをインストールするようにGemfileを変えたら動きました。

group :development, :test do
#  gem 'sqlite3', '1.3.9'
end

group :production do
#  gem 'pg', '0.17.1'
end

gem 'sqlite3', '1.3.9'
  • 2016/6/29追記

cf pushでローカルのコードを直接アップロードしていたため、何度か試して上手くいかないことがあったので追記します。
.bundle/config
に、
BUNDLE_WITHOUT: production
が設定されていたため、Bluemixにアップロードされる時に、configもアップロードされ、productionグループの部分がインストールされませんでした。私の場合は、そこにsqliteを記載されていなかっためインストールされずデータベースの部分でエラーとなっていました。
gitリポジトリを作成して、.gitignoreに.bundle/configを設定して、gitのリポジトリ経由でアップロードすれば回避できたと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0