質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

Q&A

1回答

1730閲覧

Railsで、sqlite3を開発環境だけにインストールしたい時どうすればいいでしょうか?

affluenceyou

総合スコア44

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

0グッド

0クリップ

投稿2016/08/27 02:49

こんにちは。
今回Herokuでrailsを動かしたいと思っています。そして現在、railsのチュートリアルを流しています(http://railstutorial.jp/chapters/toy_app?version=4.2#code-demo_index_view)

そこで質問なのですが、sqlite3を開発環境だけで動かしたい場合はどうすれば良いのでしょうか? そうしたい理由は、herokuではsqlite3が使えないため、ローカル環境ではsqlite3、heroku環境ではPostgreSQLを使いたいのです。

チュートリアルでは、以下の様な方法で実現しようとしています。

ruby

1source 'https://rubygems.org' 2 3gem 'rails', '4.2.2' 4gem 'sass-rails', '5.0.2' 5gem 'uglifier', '2.5.3' 6gem 'coffee-rails', '4.1.0' 7gem 'jquery-rails', '4.0.3' 8gem 'turbolinks', '2.3.0' 9gem 'jbuilder', '2.2.3' 10gem 'sdoc', '0.4.0', group: :doc 11 12group :development, :test do 13 gem 'sqlite3', '1.3.9' 14 gem 'byebug', '3.4.0' 15 gem 'web-console', '2.0.0.beta3' 16 gem 'spring', '1.1.3' 17end 18 19group :production do 20 gem 'pg', '0.17.1' 21 gem 'rails_12factor', '0.0.2' 22end

しかし、この方法を実際に行ってみると、ローカル環境ではactive recordの関係でsqlite3が必要と出てきてしまいます。

一応、共通部分でgem sqlite3と記載すれば、active recordも動いて、ローカル環境で動きます。しかしherokuでは動かないのでまた消さないと行けません。これは面倒なので、ローカル開発環境だけにsqlite3を入れる方法を教えていただけたら幸いです。
つまり質問は、group :development, :test doの部分は、どうやったらローカル環境に適用されるのでしょうか? ということです。

少し長くなってしまいましたが、教えていただけたら幸いです。よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yskkin

2016/08/28 01:03

bundle config の実行結果の提示をお願いします。
guest

回答1

0

普通にbundle installすればgroup :development, :testの中のgemも入るはずです。
ローカル環境で group :productionを除外したいということであれば、bundle install --without productionが答えなのですが。

.bundle/config ファイルが存在してその中身が

--- BUNDLE_WITHOUT: development:test

となっていれば sqlite3 は入りません。

もしこれに該当する場合は関係ないwithoutオプションを指定して再度コマンド実行するか、
ファイルを編集/削除すればいいと思います。

参考
bundle installのマニュアル

投稿2016/08/27 03:01

編集2016/08/27 03:11
yskkin

総合スコア33

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

affluenceyou

2016/08/27 13:16 編集

.bundle/configにそのようなファイルが存在しました。しかし、そのファイルを削除してbundle installを実行しても、また再度同じファイルが作られてしまいます。また、 Gems in the groups production, development and test were not installed. Use `bundle show [gemname]` to see where a bundled gem is installed. というメッセージも、bundle installの後に出てきました。 どのようにすればいいでしょうか・・・?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問