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

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

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

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

Q&A

解決済

3回答

689閲覧

rails s をしても立ち上がりません(ActiveRecord::SchemaMigration Load (0.3ms) SELECT "schema_migrations".* FROM )

korosuke0415

総合スコア16

Ruby on Rails

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

0グッド

1クリップ

投稿2018/01/16 10:30

編集2018/02/08 16:25

###前提・実現したいこと
rails s -b $IP -p $PORT をしても
If you are the application owner check the logs for more information.
という結果がっ出てwebページが開けません。

ご教授お願い致します。
直前に 
rails g paperclip photo image
rake db:migrate
をしたので、そこら辺が原因かもしれません。

追記:development.logを下から見ていった所、直近でのエラーは
ActiveRecord::PendingMigrationError (

Migrations are pending. To resolve this issue, run:

bin/rails db:migrate RAILS_ENV=development

):

となっており、 bin/rails db:migrate RAILS_ENV=developmentとしましたが変わらずです。
関係あるかは分かりませんが現状HEROKUを使ってる所なので

:~/workspace/hello_app (master) $ rails server -b $IP -p $PORT

となっております。
###発生している問題・エラーメッセージ
If you are the application owner check the logs for more information.
という結果がっ出てwebページが開けません。

ActiveRecord::SchemaMigration Load (0.3ms) SELECT "schema_migrations".* FROM "schema_migrations"という文がでます。

###該当のソースコード

RubyonRails

1ここにご自身が実行したソースコードを書いてください

###試したこと
rails destroy paperclip photo image
の後に
rails g paperclip photo image
rake db:migrate

1/25追記:イメージ説明イメージ説明

1/26追記:イメージ説明
イメージ説明

2/7追記: ps aux | grep rails の結果

2/8追記:イメージ説明
イメージ説明
イメージ説明
###補足情報(言語/FW/ツール等のバージョンなど)
cloud9でやってます

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

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

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

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

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

guest

回答3

0

なんらかの拍子でRailsが管理しているschema?migrationsテーブルと、現状のDBマイグレーション状態に差異が生じていて正しくmigrationが行われていない状態にあると思います。

下記に対処方法を記載しますが、この方法では開発環境のDBがクリアされる点にご注意下さい。

まずdbに直接入ってschema_migrationsテーブルの中身を全部削除して下さい。直接SQL叩いてdelete * from schema_migrations;する感じです。

次にサーバコンソールに戻ってrails db:migrate:resetしてください。
これでDBが初期化され、最新のマイグレーション状態に戻り、うまく動作するはずです。

投稿2018/01/29 06:21

devsx

総合スコア173

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

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

korosuke0415

2018/02/05 17:47

返事が遅れて申し訳ございません。pc触れない状況でした。 試してみたのですが駄目でしたm(__)m 気になったのですが => Booting Puma => Rails 5.0.3 application starting in development on http://0.0.0.0:8080 => Run `rails server -h` for more startup options Puma starting in single mode... * Version 3.9.1 (ruby 2.4.0-p0), codename: Private Caller * Min threads: 5, max threads: 5 * Environment: development の* Environment: development の部分は問題ないでしょうか? ご教示頂ければ幸いですm(__)m
devsx

2018/02/05 23:02

問題ありません。状況変わらずでしょうか? ps aux | grep rails はどう表されますか?
korosuke0415

2018/02/07 16:37

状況変わらずです。 ps aux | grep rails を実行した画像を追加しましたので、どうぞよろしくお願いいたします_(._.)_
devsx

2018/02/08 02:20

画像拝見しました。Railsサーバは現在動いてない状況ですね。 そしたらその状態から、以下の手順で確認して見てください。 サーバコンソール 「sqlite3 db/development.sqlite3」これでsqliteのコンソールに入ります sqliteコンソール 「.table」-> ここでschema_migrationsが表示されていることを確認 「delete from schema_migrations;」 「select * from schema_migrations;」-> ここで何も表示されないことを確認 「.exit」 コンソール 「rake db:migrate:reset」 で、サーバ起動して見てください
korosuke0415

2018/02/08 16:31

ご教示ありがとうございます。 全て実行しましたが、解決されてません、ps aux | grep rails を実行しましたが、前と同じ結果です。 画像のせたので見て頂けますか_(._.)_
devsx

2018/02/08 20:46

う〜ん・・・もはやわからないのでソースコードを一度bitbubketとかにpushして新しいCloud9のワークスペース作り直して見てはいかがでしょう。。。 解決しないのには別の何か理由はあると思うのですが、私からは読み取れずです・・・。
korosuke0415

2018/04/01 09:35

どうも、ありがとうございました(__)
guest

0

ベストアンサー

rails server -b $IP -p $PORTでアプリサーバーが起動できないのと、マイグレーションの件は別々の問題だと思います。

とりあえずケースバイケースで話すと、DBを使うアプリの場合はマイグレーションが必須になりますので、先にマイグレーションがきちんと動作するようにします。

例えばトップページではDBを全く使っていない場合などで、とりあえずコードを確認したい場合はマイグレーションがうまくいってなくても問題はありません。

アプリサーバー

  • アプリのコードに問題がある

→ ミスコードがわからない場合はコメントアウトして最低限の部分のみ残してサーバーを起動してみます

  • アプリサーバーが既に起動している

→ この場合は起動済みのサーバーを終了(または削除)します

下記は、既に同じIP、ポートでサーバーが起動しているところにもう一度サーバーを起動しようとすると下記のようなエラーが出て起動できません。

bash

1rails s -b $IP -p $PORT 2 3##↓↓↓ これが起動メッセージ ↓↓↓ 4Booting xxx 5=> Rails バージョン application starting in development on http://0.0.0.0:8080 6=> Run rails server -h for more startup options 7=> Ctrl-C to shutdown server 8Exiting 9... Address already in use - bind for "0.0.0.0"

マイグレーション

マイグレーションのDBテーブル定義などが間違っていないか確かめてみてください。
下記でどのマイグレーションが失敗したのか調べます。DBに接続できない場合はconfig/database.yml設定を確認します。

bash

1rake db:abort_if_pending_migrations

そもそもDBを作成していなかった場合は、下記でconfig/database.ymlに定義してあるDBを作成します。

bash

1rake db:create:all

作成済みのマイグレーション(新規作成を含む)クラス一覧が表示されます。

bash

1rake db:migrate:status

マイグレーションは普通新規テーブル作成、既存テーブル変更などのDBテーブルをアプリケーションで使用するための準備を行います。ですので、これが間違ってたりすると、場合によっては意図しない動作が発生したりすることになります。
Qiita - Rails db migrate でエラーになったときの調査方法

ただし、DBテーブル定義をSQL文から行い、マイグレーションで管理しない場合はマイグレーション自体を行う必要はありません。いろいろ不便ですが、こういうアプリもあることはあります。

マイグレーションファイルがない場合は、下記のようにすると新しいマイグレーションを作成できます。モデルを作成してもマイグレーションファイルを同時に作成することができます。

bash

1rails g migration クラス名

テーブル新規作成のマイグレーションファイルでは下記のように定義されていると思います。
RAILS GUIDES - Active Record マイグレーション

db/migrate/xxxxx_マイグレーションクラス.rb

ruby

1class マイグレーションクラス < ActiveRecord::Migration 2 def change 3 create_table :テーブル名 do |t| 4 //カラム定義 5 t.string :カラム名1 6 t.text :カラム名2 7 //... 8 end 9 end 10end

投稿2018/01/25 07:20

Tomak

総合スコア1652

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

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

korosuke0415

2018/01/25 13:34

いつもお世話になっておりますm(__)m そして、非常に分かりやすい説明をありがとうございます。 ご指摘頂いた事を実行し、スクショを「試したこと」に追加しましたので、db,migrationに問題ないか確認して頂けませんでしょうか? railsアプリは、変わらずエラーな状態ですm(__)m
Tomak

2018/01/25 14:12 編集

下記のメッセージはエラーメッセージではないので注意してください。アプリサーバー起動時のエラーメッセージは何も出ていなくて起動自体は成功しています。 --- ActiveRecord::SchemaMigration Load (0.3ms) SELECT "schema_migrations".* FROM "schema_migrations" ちょっと気になったのですが、DBにデータは入っているのでしょうか? 手動でデータを入れるか、下記のようにしてデータを入れます。アプリ側がDBに何も入っていないことを想定していない場合、アプリサーバーは起動しているけどアクセスができない状況が発生します。 ---- rake db:seed あとは、マイグレーションをやり直してみると良いかもしれません。既にデータが入っていて、DBのバックアップが必要ならバックアップをとっておいて下記を実行します。 意味はDB削除 → DB作成 → マイグレーションです。データが消えるので注意してください。データが必要な場合は、バックアップから挿入し直すか「rake db:seed」でデータを入れ直します。 ---- rake db:migrate:reset
korosuke0415

2018/01/26 10:22

お答え頂き有難うございます。 起動自体は成功しているんですね、この前までのエラーはエラー文が表示され、どこがおかしいのか分かるようになっていたんですが、今のエラー文では何がおかしいのか分からなくて困っています。エラー文のスクショを追加で張り付けたので見て頂ければ幸いです。 あと、ご教示して頂いた rake db:seed を実行しましたがエラーは取れずです。そもそもseedsファイルに記述がなさそうです。こちらのスクショも追記で張り付けたので見て頂ければ幸いです。 rake db:migrate:resetの方はseedsファイルに記述がないかもしれないので、まだ実行していない状態です。 ちなみに今 udemyの[作りながら覚える!]Ruby on Railsを用いたウェブ開発 の動画を見ながら推し進めています。 ですのでseedsファイルに何かを書き込む様な作業はこれまでにありませんでした。 どうか、ご教示お願い致しますm(__)m
guest

0

rails sのみだとポートやIPがデフォルトのまま(localhost:3000)になってしまうと思います。

Cloud9ではアクセス可能ポートは80番のみとかアクセス制御されているので、それが影響して開けないのではないかと思います。

Cloud9 Help You may be using the wrong PORT & IP for your server application.For rails, use: 'rails s -p $PORT -b $IP'. For Sinatra, use: ruby app.rb -p $PORT -o $IP'.

というヘルプがあるので、コンソールから起動するのであれば

rails s -p $PORT -b $IP

と入力してみてはどうでしょう。

もしくは「Run Project」ボタンでも起動すると思います。

投稿2018/01/21 15:18

yatta47

総合スコア208

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

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

korosuke0415

2018/01/24 12:40

情報足らずで申し訳ございません。 rails s -b $IP -p $PORT としています。 情報追記しましたので見ていただけると幸いですm(__)m
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問