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

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

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

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

3回答

18711閲覧

rails We're sorry, but something went wrong.のエラーを解消したい。

TakumaN

総合スコア120

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

1グッド

0クリップ

投稿2016/03/27 01:23

###開発環境
ruby 2.3.0p0
Rails 4.2.6
sqlite3 3.8.10.2
sqale (使っているレンタルサーバー)

###質問の内容
sqaleのレンタルサーバーを使っているのですが、デプロイ後にページを見てみると以下のようなエラーが出てしまいます。

ページでのエラー文

しかし、sqaleのサーバーにssh接続して、bundle exec rake db:migrateしてから、アプリケーションを再起動(/etc/init.d/app restart)すると以前のデータは消えているのですが、エラーは解消されます。(その後にまたデプロイすると同じエラーになる。)

デプロイしてもちゃんとページが表示されて、以前のデータもデータベースに残るようにするにはどうすればよろしいでしょうか?

###log/production.logでの問題となっていそうなログ

lenux

1Error in 43ms (ActiveRecord: 1.0ms) 2F, [2016-03-27T08:39:28.039817 #28807] FATAL -- : 3ActionView::Template::Error (SQLite3::SQLException: no such table: galleries: SELECT "galleries".* FROM "galleries" ORDER BY "galleries"."created_at" DESC): 4 2: All Gallery<span class="message"><%= notice %><%= alert %></span> 5 3: </div> 6 4: <div id="fullpage"> 7 5: <% @galleries.each do |gallery| %> 8 6: <div class="section" id="slide-top"> 9 7: <div class="slide"> 10 8: <div class="img-wrap"> 11 app/views/home/top.html.erb:5:in `_app_views_home_top_html_erb___1220054426875533217_70207975087460'

###私が考えている問題点
私自身が考えている問題点は以下の二つです。

・再起動時に以前のデータがなくなるという問題
→データがproduction環境ではちゃんと保存されていない。(development環境では保存されていました。)

・デプロイするたびにssh接続からのbundle exec rake db:migrateとアプリケーション再起動をしなければ、ページが表示されないという問題
→sqlite3の設定ができていない?

config/detabase.yml

1##config/detabase.yml 2 3 4default: &default 5 adapter: sqlite3 6 pool: 5 7 timeout: 5000 8 9development: 10 <<: *default 11 database: db/development.sqlite3 12test: 13 <<: *default 14 database: db/test.sqlite3 15 16production: 17 adapter: sqlite3 18 encoding: utf8 19 username: sqale_xxxxxxxxxx 20 password: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 21 database: sqale_xxxxxxxxxx 22 host: mysql001.sqale.jp
退会済みユーザー👍を押しています

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

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

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

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

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

guest

回答3

0

自己解決

config/database.ymlのproduction環境でのadapterをmysql2に変更してデプロイ。

ssh接続して、RAILS_ENV=production bundle exec rake db:migrateからの再起動(/etc/init.d/app restart)。

とすると無事にページが表示され、その後のデプロイでもテーブルが消えなくなりました!

コメントしてくださった方々、どうもありがとうございました!

投稿2016/03/27 22:54

TakumaN

総合スコア120

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

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

0

no such table とあるのでデータベースの galleries テーブルが無いのだと思います。デプロイしてから bundle exec rake db:migrate を実行してテーブルを作成すると良いのではないでしょうか(☝ ՞ਊ ՞)

投稿2016/03/27 02:04

pugiemonn

総合スコア43

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

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

TakumaN

2016/03/27 03:20

bundle exec rake db:migrateするとテーブルは作成されるのですが、その後にまたデプロすると、なぜかテーブルがなくなってしまいno such tableになってしまいます。
guest

0

production環境でRackサーバーを起動しているんですよね?
だとしたら、migrationもproductionでやってやらねばならないのでは?

bundle exec rake db:migrate RAILS_ENV=production

これで行けませんか?

投稿2016/03/27 04:22

rifuch

総合スコア1901

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

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

TakumaN

2016/03/27 04:46

bundle exec rake db:migrate RAILS_ENV=productionしてみましたが、ダメでした。。。
rifuch

2016/03/27 05:17

sqaleのFAQを見る限り、デプロイ後にconfig/database.ymlが書き換えられるようですから、sshで書き換えられた後のconfig/database.ymlを確認してみてはどうでしょうか? sqaleはデプロイ後の操作や各種接続の後に、自動スクリプトでコマンドを発行したり、環境を書き換えたりするようです。 ちなみに、提示いただいているdabase.ymlはデプロイ前のものですか?後のものですか?
TakumaN

2016/03/27 07:44

sshで書き換えられた後のconfig/database.ymlを確認してみましたが、書き換える前と全く同じ状態でした。(書き換えられてないのかもしれません。) 提示しているdatabase.ymlはデプロイ前のものです。といってもデプロイ後も全く同じですが。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問