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

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

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

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

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

解決済

1回答

2875閲覧

Heroku deploy後、migration実行「relation doesnt exist」のエラー(laravel5.5)

kazoogon

総合スコア281

Heroku

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

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

0クリップ

投稿2018/06/04 17:25

編集2018/06/05 01:25

現状

Laravel5.5 のアプリケーションをHerokuにdeploy
→その後heroku run php artisan migrateでmigrate
→しかし下記のエラーが出る

Undefined table: 7 ERROR: relation "reservation_calenders" do es not exist (SQL: alter table "reservation_calenders" add constraint "reservat ion_calenders_teacher_id_foreign" foreign key ("teacher_id") references "teache rs" ("id") on delete cascade)

試してみたこと

ググってみましたが

https://gis.stackexchange.com/questions/143836/resolving-relation-does-not-exist-in-postgis?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa

などにもある通り「table名の大文字がネック」という問題点ばかりです。しかし私のtable名はreservation_calendersと大文字が含まれておらず、なぜこのエラーが出るのかが不明です

よろしくお願いいたします。
(他に必要な情報がございましたら追記いたします)

回答を受けての追記

問題のあると思われるmigrationファイル

public function up() { Schema::table("reservation_calenders", function (Blueprint $table) { $table->foreign('teacher_id') ->references('id')->on('teachers') ->onDelete('cascade'); $table->foreign('user_id') ->references('id')->on('users') ->onDelete('cascade'); }); }

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2018/06/04 23:48

マイグレーションファイルの内容を追記して頂きたいです。
退会済みユーザー

退会済みユーザー

2018/06/04 23:51

それから、ローカル開発環境ではうまくいっているのでしょうか?
kazoogon

2018/06/05 01:26

回答ありがとうございます。 本文「回答を受けての追記」に追記いたしました、またローカル環境ではうまくいっております。
退会済みユーザー

退会済みユーザー

2018/06/05 01:40 編集

ありがとうございます。このマイグレーションファイルは新規テーブル作成でしょうか?それともテーブルにカラムを追加しているでしょうか?あるいはすでに存在するカラムに外部キー属性を足しているということでしょうか?
kazoogon

2018/06/05 01:40

テーブルにカラムを追加しております。
退会済みユーザー

退会済みユーザー

2018/06/05 01:40

ありがとうございます。
guest

回答1

0

ベストアンサー

以下に書き換えて試してみて下さい。

php

1 public function up() 2 { 3 Schema::table("reservation_calenders", function (Blueprint $table) { 4 $table->unsignedInteger('teacher_id'); 5 $table->foreign('teacher_id') 6 ->references('id')->on('teachers') 7 ->onDelete('cascade'); 8 $table->unsignedInteger('user_id'); 9 $table->foreign('user_id') 10 ->references('id')->on('users') 11 ->onDelete('cascade'); 12 }); 13 }

投稿2018/06/05 01:47

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

kazoogon

2018/06/14 16:25

これでもダメですね。。。
kazoogon

2018/06/14 17:39

user_idの方だけ追加するといけました。 teacher_idは自分で作ったのでunsignedにしていなかったようです、次から基本は全てunsignedに統一しようと思います
退会済みユーザー

退会済みユーザー

2018/06/15 01:41

外部キーはunsignedにして下さい。通常の数値はintegerで問題ないです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問