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

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

ただいまの
回答率

87.61%

HerokuにClearDBアドオンをしたらDBのテーブルが足りない。

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 1,050

score 14

前提

ユーザー登録を必要とするSNS的なアプリを開発中です。
いよいよα版を公開!と思ったら最後の最後につまづいています・・・

https://life-stamp-rally.herokuapp.com/users

Heroku上にアプリケーションを作成し、ブラウザにトップページを表示するところまでは出来ています。
しかしログインページや新規会員登録に遷移すると下記エラーが発生。

イメージ説明

HeidiSQLを使用してデータベースに接続をしてみると、
本来あるはずのUsersテーブルがありませんでした!!

イメージ説明
※開発環境

イメージ説明
※HeidiSQL(herokuにデプロイしたアプリのデータベース)

Herokuのバージョンは18、
Rubyのバージョンは2.5.1、
railsのバージョンは5.2.2.1、
DBは開発環境でMySQL(phpmyadmin)を使っています。

アドオンは普通に問題無く出来ている様に見えます・・・

ec2-user:~/environment/ver0.3 (master) $ heroku addons:info cleardb
=== cleardb-crystalline-67196
Attachments:  life-stamp-rally::CLEARDB_DATABASE
Installed at: Tue Mar 26 2019 02:24:55 GMT+0000 (Coordinated Universal Time)
Owning app:   life-stamp-rally
Plan:         cleardb:ignite
Price:        free
State:        created

以下schema.rb

ActiveRecord::Schema.define(version: 2019_03_19_064642) do

  create_table "active_storage_attachments", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
    t.string "name", null: false
    t.string "record_type", null: false
    t.bigint "record_id", null: false
    t.bigint "blob_id", null: false
    t.datetime "created_at", null: false
    t.index ["blob_id"], name: "index_active_storage_attachments_on_blob_id"
    t.index ["record_type", "record_id", "name", "blob_id"], name: "index_active_storage_attachments_uniqueness", unique: true
  end

  create_table "active_storage_blobs", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
    t.string "key", null: false
    t.string "filename", null: false
    t.string "content_type"
    t.text "metadata"
    t.bigint "byte_size", null: false
    t.string "checksum", null: false
    t.datetime "created_at", null: false
    t.index ["key"], name: "index_active_storage_blobs_on_key", unique: true
  end

  create_table "countries", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
    t.string "country"
    t.string "capital"
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
    t.string "continent"
    t.float "latitude", limit: 53
    t.float "longitude", limit: 53
  end

  create_table "remove_latitude_from_countries", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
    t.integer "latitude"
    t.integer "longitude"
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
  end

  create_table "stamps", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
    t.integer "user_id"
    t.text "title"
    t.text "description"
    t.datetime "shooted_at"
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
    t.integer "country_id"
  end

  create_table "users", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
    t.string "email", default: "", null: false
    t.string "encrypted_password", default: "", null: false
    t.string "reset_password_token"
    t.datetime "reset_password_sent_at"
    t.datetime "remember_created_at"
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
    t.string "family_name"
    t.string "first_name"
    t.string "family_name_kana"
    t.string "first_name_kana"
    t.index ["email"], name: "index_users_on_email", unique: true
    t.index ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true
  end

  add_foreign_key "active_storage_attachments", "active_storage_blobs", column: "blob_id"
end

以下database.yml

default: &default
  adapter: mysql2
  encoding: utf8
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  username: root
  password:
  socket: /var/lib/mysql/mysql.sock

development:
  <<: *default
  database: ver0_2_development

test:
  <<: *default
  database: ver0_2_test

production:
  <<: *default
  database: ver0_2_production
  username: ver0_2
  password: <%= ENV['VER0_2_DATABASE_PASSWORD'] %>
source 'https://rubygems.org'
git_source(:github) { |repo| "https://github.com/#{repo}.git" }

ruby '2.5.1'

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '~> 5.2.2', '>= 5.2.2.1'
# Use mysql as the database for Active Record
gem 'mysql2', '0.5.2'
# Use Puma as the app server
gem 'puma', '~> 3.11'
# Use SCSS for stylesheets
gem 'sass-rails', '~> 5.0.7'
# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '>= 1.3.0'
# See https://github.com/rails/execjs#readme for more supported runtimes
# gem 'mini_racer', platforms: :ruby

# Use CoffeeScript for .coffee assets and views
gem 'coffee-rails', '~> 4.2'
# Turbolinks makes navigating your web application faster. Read more: https://github.com/turbolinks/turbolinks
gem 'turbolinks', '~> 5'
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 2.5'
# Use Redis adapter to run Action Cable in production
# gem 'redis', '~> 4.0'
# Use ActiveModel has_secure_password
# gem 'bcrypt', '~> 3.1.7'

# Use ActiveStorage variant
# gem 'mini_magick', '~> 4.8'

# Use Capistrano for deployment
# gem 'capistrano-rails', group: :development

# Reduces boot times through caching; required in config/boot.rb
gem 'bootsnap', '>= 1.1.0', require: false

group :development, :test do
  # Call 'byebug' anywhere in the code to stop execution and get a debugger console
  gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
end

group :development do
  # Access an interactive console on exception pages or by calling 'console' anywhere in the code.
  gem 'web-console', '>= 3.3.0'
  gem 'listen', '>= 3.0.5', '< 3.2'
  # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
  gem 'spring'
  gem 'spring-watcher-listen', '~> 2.0.0'
end

group :test do
  # Adds support for Capybara system testing and selenium driver
  gem 'capybara', '>= 2.15'
  gem 'selenium-webdriver'
  # Easy installation and use of chromedriver to run system tests with Chrome
  gem 'chromedriver-helper'
end

# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]

# アマゾンS3を追加
gem 'aws-sdk-s3', require: false

# 基本項目
gem 'pry-rails'
gem 'compass-rails', '3.1.0'
gem 'sprockets', '3.7.2'
gem 'hirb'
gem 'hirb-unicode'

# jQuery
gem "jquery-rails"

# ログイン
gem 'devise'

group :production do
  gem 'rails_12factor'
end

どなたかアドバイスを頂けると幸いです・・・

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

check解決した方法

0

migrationファイルが一部欠損していたのが原因でした!
ですので一度開発環境でテーブル、migrationファイルを全て削除して綺麗に再生をしたところ上手く行きました。

(しょうも無くてすみません・・・)

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

まずは、

heroku logs


でRailsアプリケーションのログを参照してみると良いと思います。

また、herokuは基本的にPostgreSQLですが、SQLは一部を除いて正常に動作すると思うので、Gemfileとconfig/database.ymlに必要な情報を記述してデプロイするのも一つの手かなと思いました。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/03/27 15:28 編集

    ありがとうございます。
    Heroku logsを試したところ、下記が表示されました。

    ---
    2019-03-26T08:15:34.988783+00:00 heroku[router]: at=info method=GET path="/users/sign_in" host=life-stamp-rally.herokuapp.com request_id=5d643fc3-f8ce-41ea-89b3-d883356c0ace fwd="52.71.155.178" dyno=web.1 connect=1ms service=89ms status=500 bytes=1827 protocol=https
    2019-03-26T08:49:22.033723+00:00 heroku[web.1]: Idling
    2019-03-26T08:49:22.062499+00:00 heroku[web.1]: State changed from up to down
    2019-03-26T08:49:22.990471+00:00 app[web.1]: - Gracefully stopping, waiting for requests to finish
    2019-03-26T08:49:22.992071+00:00 app[web.1]: === puma shutdown: 2019-03-26 08:49:22 +0000 ===
    2019-03-26T08:49:22.992103+00:00 app[web.1]: - Goodbye!
    2019-03-26T08:49:22.992255+00:00 app[web.1]: Exiting
    2019-03-26T08:49:22.976351+00:00 heroku[web.1]: Stopping all processes with SIGTERM
    2019-03-26T08:49:23.088899+00:00 heroku[web.1]: Process exited with status 143
    2019-03-27T06:19:02.626278+00:00 heroku[web.1]: State changed from down to starting
    2019-03-27T06:19:09.096026+00:00 heroku[web.1]: Starting process with command `bin/rails server -p 3378 -e production`
    ---

    これはつまりHerokuを下記に従ってPumaサーバーを利用する変更をしなければならないということなのでしょうか・・・・?
    https://devcenter.heroku.com/articles/deploying-rails-applications-with-the-puma-web-server

    >Gemfileとconfig/database.ymlに必要な情報を記述して
    →すみません、、、必要な情報とは具体的に何を指しておりますでしょうか?
     例で構わないのでご教授頂けると嬉しいです・・・

    キャンセル

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

  • ただいまの回答率 87.61%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る