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

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

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

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

Ruby on Rails

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

Q&A

解決済

1回答

2330閲覧

heroku run rails db:migrateでPlease use `config.public_file_server.enabled = true` instead.のエラー

seesaajira-

総合スコア107

Heroku

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

Ruby on Rails

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

0グッド

0クリップ

投稿2016/12/26 03:00

開発環境では問題なくrails db:migrate が通るのですが、
herokuに「heroku run rails db:migrate」を実行すると以下のエラーがおきてしまいます。

DEPRECATION WARNING: `config.serve_static_files` is deprecated and will be removed in Rails 5.1. Please use `config.public_file_server.enabled = true` instead. (called from block in <top (required)> at /app/config/environments/production.rb:25) == 20161219024215 CreateGames: migrating ====================================== -- create_table(:games) rails aborted! StandardError: An error has occurred, this and all later migrations canceled: PG::UndefinedTable: ERROR: relation "tournaments" does not exist

railsのバージョンは「Rails 5.0.0.1」です。
なにやらrails 5.1では「config.serve_static_files」が削除されるから代わりに「config.public_file_server.enabled = true」を使えとかかれているようなのですが、「production.rb」を以下のようにしてもエラーメッセージに変化がありません。

Rails.application.configure do config.public_file_server.enabled = true <--ここに追記しました! config.cache_classes = true config.eager_load = true config.consider_all_requests_local = false config.action_controller.perform_caching = true config.public_file_server.enabled = true config.assets.js_compressor = :uglifier config.assets.compile = false config.assets.digest = true config.log_level = :debug config.i18n.fallbacks = true config.active_support.deprecation = :notify config.log_formatter = ::Logger::Formatter.new config.active_record.dump_schema_after_migration = false end

先に進めず困っています。
よろしくお願いします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

おそらく原因以下ではないと思われます。こちらで言っているのでrails5.1で使えなくなる機能なので今のうちに使わないようにした方がいいよという警告です。

DEPRECATION WARNING: `config.serve_static_files` is deprecated and will be removed in Rails 5.1. Please use `config.public_file_server.enabled = true` instead.

で、本当の原因はおそらく以下だと思われます。

PG::UndefinedTable: ERROR: relation "tournaments" does not exist

tournaments なるテーブルが存在するか確かめて存在しないのであればそのテーブルを作成すれば解決すると思われます。

投稿2016/12/26 03:22

otukutun

総合スコア26

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

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

seesaajira-

2016/12/26 04:02

otukutunさん、早速のご回答ありがとうございます。 実行環境に"tournaments"テーブルを作成する方法を調べて対応してみます!
seesaajira-

2016/12/26 05:46

otukutunさん、ありがとうございました。 migrationファイルのファイル名を変更して順番を入れ替えてherokuにpushし直し 「heroku run rails db:migrate」を行う事でエラーが起きずに実行できました。 このやり方で良かったのか分かりませんが、解決できました!
otukutun

2016/12/26 07:41

解決してよかったです! おそらく原因は `games` テーブルに `tournaments` テーブルのリレーションを持っていることだと思います。 別の解決方法としては 1. `games` テーブルにある `tournaments` テーブルのリレーションを定義しているフィールドをけす 2. `tournaments` テーブル作成 3. `games` テーブルにある `tournaments` テーブルのリレーションを定義しているフィールドを追加 で解決すると思います。ご参考までに!
seesaajira-

2016/12/26 07:59

otukutunさん、ありがとうございます。 開発環境では問題なかったのでherokuにデプロイ後、この現象が起きてしまい2日悩んでしまいました。おかげで先に進む事ができました。 またよろしくお願いします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問