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

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

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

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

718閲覧

items とitem_conditionsテーブルがPHPmyadminに表示されない

Maruco2321

総合スコア118

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2021/11/30 21:44

編集2021/12/01 01:51

###質問内容
MacのVScodeにてPHP メルカリ風のアプリを作成しています。
PHPmyadminより何度確認しても「items とitem_conditionsテーブル」が表示されないのはなぜでしょうか?
database/migrations/XXXX_XX_XX_XXXXXX_create_app_tables.phpには下のように「items とitem_conditionsテーブル」についてしっかりと記述したため、テーブルが作られているはず!...と思っていたのですが
ターミナルに

コード /var/www# php artisan migrate /var/www# php artisan migrate:refresh

を何度打ち込んでもテーブルが作られませんでした。どこに原因があるのでしょうか?よろしくお願いします????‍♂️

###コード
melpit/database/migrations/XXXX_XX_XX_XXXXXX_create_app_tables.php

コード <?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; class CreateAppTables extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create('primary_categories', function (Blueprint $table) { $table->id(); // ここにカラムを追加していく $table->timestamps(); }); Schema::create('secondary_categories', function (Blueprint $table) { $table->id(); $table->unsignedBigInteger('primary_category_id'); // ここにカラムを追加していく $table->timestamps(); $table->foreign('primary_category_id')->references('id')->on('primary_categories'); }); Schema::create('item_conditions', function (Blueprint $table) { $table->id(); // ここにカラムを追加していく $table->timestamps(); }); Schema::create('items', function (Blueprint $table) { $table->id(); $table->unsignedBigInteger('seller_id'); $table->unsignedBigInteger('buyer_id'); $table->unsignedBigInteger('secondary_category_id'); $table->unsignedBigInteger('item_condition_id'); // ここにカラムを追加していく $table->timestamps(); $table->foreign('seller_id')->references('id')->on('users'); $table->foreign('buyer_id')->references('id')->on('users'); $table->foreign('secondary_category_id')->references('id')->on('secondary_categories'); $table->foreign('item_condition_id')->references('id')->on('item_conditions'); }); } /** * Reverse the migrations. * * @return void */ public function down(){ Schema::dropIfExists('items'); Schema::dropIfExists('item_conditions'); Schema::dropIfExists('secondary_categories'); Schema::dropIfExists('primary_categories'); } }

###写真
イメージ説明
イメージ説明
イメージ説明
イメージ説明

###追記
イメージ説明

###追記2
migrate:resetをターミナルに打ち込んだ時の様子

コード /var/www# php artisan migrate:reset Rolling back: 2019_08_19_000000_create_failed_jobs_table Rolled back: 2019_08_19_000000_create_failed_jobs_table (0.11 seconds) Rolling back: 2014_10_12_100000_create_password_resets_table Rolled back: 2014_10_12_100000_create_password_resets_table (0.06 seconds) Rolling back: 2014_10_12_000000_create_users_table Rolled back: 2014_10_12_000000_create_users_table (0.15 seconds)

###追記3

コード /var/www# php artisan migrate:refresh Rolling back: 2019_08_19_000000_create_failed_jobs_table Rolled back: 2019_08_19_000000_create_failed_jobs_table (0.06 seconds) Rolling back: 2014_10_12_100000_create_password_resets_table Rolled back: 2014_10_12_100000_create_password_resets_table (0.06 seconds) Rolling back: 2014_10_12_000000_create_users_table Rolled back: 2014_10_12_000000_create_users_table (0.05 seconds) Migrating: 2014_10_12_000000_create_users_table Migrated: 2014_10_12_000000_create_users_table (0.14 seconds) Migrating: 2014_10_12_100000_create_password_resets_table Migrated: 2014_10_12_100000_create_password_resets_table (0.09 seconds) Migrating: 2019_08_19_000000_create_failed_jobs_table Migrated: 2019_08_19_000000_create_failed_jobs_table (0.05 seconds) Migrating: 2021_11_29_144511_create_app_tables Migrated: 2021_11_29_144511_create_app_tables (0 seconds) root@21136dd7bb79:/var/www#

記述3でのmysqladominの様子
イメージ説明

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

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

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

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

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

1T2R3M4

2021/11/30 21:50

調べたこと、試したことを質問に追記していただけませんか。
m.ts10806

2021/11/30 21:59

エラー出てるのでロールバックしたんでは。
Maruco2321

2021/11/30 22:02

一度下記の記事を参考にrefreshすればうまくいくのでは...?とも思ったのですが、「items とitem_conditionsテーブル」のみテーブル作成がうまくいかない、というのが現状です。 参考リンク https://qiita.com/pugiemonn/items/d3e2efe6dac4e6a760f7
Maruco2321

2021/11/30 22:06

エラーでロールバックしたのでは?というのはそのエラーの影響で作業が進まないためテーブルが作られないみたいな意味なんでしょうか?だとしたらそれについても考えてみます!
m.ts10806

2021/11/30 22:36

「トランザクション」についてきちんとおさえてください。
Maruco2321

2021/11/30 23:42

なるほど!「トランザクション」については https://qiita.com/zd6ir7/items/6568b6c3efc5d6a13865 で理解したのですが今回の場合は一部うまくいっていないためトランザクションで失敗して先に進めないという感じなのだと理解しました。ではそのトランザクションで失敗しないためにどうすれば良いかについても考えていきたいのですが解決策についてより考えていきたいと思います
Maruco2321

2021/11/30 23:46

migrate:fresh をターミナルに打ち込むことで テーブルを捨てて作り直したからエラー赤線部下の ////Base and view table already exists///// はおかしいですね。だからここが解決できればなんかうまくいきそうなのですが
skys215

2021/12/01 00:32

migrate:reset して、データベースにテーブルは残ってますか?
m.ts10806

2021/12/01 01:12

トランザクション内でエラーが起きて、実行前の状態に戻ってるということです。 既に存在するテーブルを作ろうとしているためのエラーなのですから、変更、追加分だけ投げるところからと思います。
Maruco2321

2021/12/01 01:26

migrate:reset して、データベースにテーブルは残ってますか? ↑おそらく残っていると思われます。追記2のように3つしかなぜかテーブルが消せないからです。
Maruco2321

2021/12/01 01:40 編集

migrate:reset migrate:fresh どちらの場合もロールバックが完全にできていない(?)ようです また、melpit/database/migrations/XXXX_XX_XX_XXXXXX_create_app_tables.php 内に記述したロールバック対象は下のようになっています public function down(){ Schema::dropIfExists('items'); Schema::dropIfExists('item_conditions'); Schema::dropIfExists('secondary_categories'); Schema::dropIfExists('primary_categories'); }
skys215

2021/12/01 01:41

phpmyadminでテーブルが残ってるか確認お願いします。 残ってるとしたら、テーブル名は? migrations, jobs, failed_jobsだけ残ってた場合、そのまままたartisan migrateをしてみてください。
m.ts10806

2021/12/01 01:42

んー データだけバックアップ取って全消しからやり直したほうが良いかもしれません。何かに引っかかって半端な状態で進むも戻るもできない状態は発生し得ますし。
Maruco2321

2021/12/01 01:46

エラー内容の一つである 'secondary_categories' 'primary_categories' テーブルについての記述を無効化して試してみた(コメントとは無関係)のが記述3なのですが根本的解決にはなりませんでした。
Maruco2321

2021/12/01 01:48

phpmyadminでテーブルが残ってるか確認お願いします。 残ってるとしたら、テーブル名は? migrations, jobs, failed_jobsだけ残ってた場合、そのまままたartisan migrateをしてみてください。 ↑今から確認していきたいと思います。 データだけバックアップ取って全消しからやり直したほうが良いかもしれません。何かに引っかかって半端な状態で進むも戻るもできない状態は発生し得ますし。 ↑おっしゃる通りで解決しそうにない場合はそのような手段も試してみたいと思います。ありがとうございます????‍♂️
Maruco2321

2021/12/01 02:04 編集

phpmyadminでテーブルが残ってるか確認お願いします。 残ってるとしたら、テーブル名は? migrations, jobs, failed_jobsだけ残ってた場合、そのまままたartisan migrateをしてみてください。 ↑ mygrate:resetだけではうまくいかなかったのですが mygrate:refreshを実行したら何故か「items とitem_conditionsテーブル」ができていました(追記4) とりあえず一安心といったところです。ありがとうございました。 解決した理由はおそらく mygrate:reset でmygrate:refreshで消えなかったものが消えてトランザクションが成功するようになったからだと思います。 もしくはmelpit/database/migrations/XXXX_XX_XX_XXXXXX_create_app_tables.php 内に記述したupとdown内の記述を無効化したりして何回か mygrate:reset  mygrate:refresh を打ち込んでいてその間にmygrate:refreshで消えなかったものが消えてトランザクションが成功するようになったからなのかもしれません。根本的原因はこれだ!とは言えないのですがなんとなく理解できました。回答していただきありがとうございました????‍♂️
guest

回答1

0

自己解決

回答ありがとうございました????‍♂️
詳しい内容はコメントの方を参照してください

phpmyadminでテーブルが残ってるか確認お願いします。
残ってるとしたら、テーブル名は?
migrations, jobs, failed_jobsだけ残ってた場合、そのまままたartisan migrateをしてみてください。

mygrate:resetだけではうまくいかなかったのですが
mygrate:refreshを実行したら何故か「items とitem_conditionsテーブル」ができていました(追記4)
とりあえず一安心といったところです。ありがとうございました。
解決した理由はおそらく
mygrate:reset
でmygrate:refreshで消えなかったものが消えてトランザクションが成功するようになったからだと思います。
もしくはmelpit/database/migrations/XXXX_XX_XX_XXXXXX_create_app_tables.php
内に記述したupとdown内の記述を無効化したりして何回か
mygrate:reset  mygrate:refresh
を打ち込んでいてその間にmygrate:refreshで消えなかったものが消えてトランザクションが成功するようになったからなのかもしれません。根本的原因はこれだ!とは言えないのですがなんとなく理解できました。回答していただきありがとうございました????‍♂️

投稿2021/12/01 02:08

Maruco2321

総合スコア118

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問