質問: こんにちは。 今回Herokuでrailsを動かしたいと思っています。そして現在、railsのチュートリアルを流しています(http://railstutorial.jp/chapters/toy_app?version=4.2#code-demo_index_view) そこで質問なのですが、sqlite3を開発環境だけで動かしたい場合はどうすれば良いのでしょうか? そうしたい理由は、herokuではsqlite3が使えないため、ローカル環境ではsqlite3、heroku環境ではPostgreSQLを使いたいのです。 チュートリアルでは、以下の様な方法で実現しようとしています。 ``` source 'https://rubygems.org' gem 'rails', '4.2.2' gem 'sass-rails', '5.0.2' gem 'uglifier', '2.5.3' gem 'coffee-rails', '4.1.0' gem 'jquery-rails', '4.0.3' gem 'turbolinks', '2.3.0' gem 'jbuilder', '2.2.3' gem 'sdoc', '0.4.0', group: :doc group :development, :test do gem 'sqlite3', '1.3.9' gem 'byebug', '3.4.0' gem 'web-console', '2.0.0.beta3' gem 'spring', '1.1.3' end group :production do gem 'pg', '0.17.1' gem 'rails_12factor', '0.0.2' end ``` しかし、この方法を実際に行ってみると、ローカル環境ではactive recordの関係でsqlite3が必要と出てきてしまいます。 一応、共通部分でgem sqlite3と記載すれば、active recordも動いて、ローカル環境で動きます。しかしherokuでは動かないのでまた消さないと行けません。これは面倒なので、ローカル開発環境だけにsqlite3を入れる方法を教えていただけたら幸いです。 つまり質問は、group :development, :test doの部分は、どうやったらローカル環境に適用されるのでしょうか? ということです。 少し長くなってしまいましたが、教えていただけたら幸いです。よろしくお願いします。
回答: 普通に`bundle install`すれば`group :development, :test`の中のgemも入るはずです。 ローカル環境で `group :production`を除外したいということであれば、`bundle install --without production`が答えなのですが。 .bundle/config ファイルが存在してその中身が ```BUNDLE_WITHOUT: development:test ``` となっていれば sqlite3 は入りません。 もしこれに該当する場合は関係ないwithoutオプションを指定して再度コマンド実行するか、 ファイルを編集/削除すればいいと思います。 参考 bundle installのマニュアル