

Laravel7

マイグレーションしたいのですが、以下のエラーが出てしまいます。このエラーをしらべるとたいていは`$table->bigInteger('user_id')->unsigned();`や`$table->unsignedBigInteger()`による解決方法が出てきますが、それをやっての結果です。  
他の解決不能なエラーが出ていたためデータベースを削除して、`php artisan
migrate`ということを数回やりましたが、以下のエラーが出てしまいます。

[code]

      SQLSTATE[HY000]: General error: 3780 Referencing column 'user_id' and referenced column 'id' in foreign key constraint 'user_group_user_id_foreign' are incompatible. (SQL: alter table `user_group` add constraint `user_group_user_id_foreign` foreign key (`user_id`) references `users` (`id`))
    
      at vendor/laravel/framework/src/Illuminate/Database/Connection.php:671
        667|         // If an exception occurs when attempting to run a query, we'll format the error
        668|         // message to include the bindings with SQL, which will make this exception a
        669|         // lot more helpful to the developer instead of just the database's errors.
        670|         catch (Exception $e) {
      > 671|             throw new QueryException(
        672|                 $query, $this->prepareBindings($bindings), $e
        673|             );
        674|         }
        675|
    
          +9 vendor frames
      10  database/migrations/2020_06_11_152935_create_user_groups_table.php:19
          Illuminate\Support\Facades\Facade::__callStatic("create")
    
          +22 vendor frames
      33  artisan:37
          Illuminate\Foundation\Console\Kernel::handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
    
[/code]

目的はチャットアプリを作ることで、テーブル構成は以下で、中間テーブルとgroups,commentsは`php
make:migration`しました。usersは`php artisan ui vue --auth`をして作られたテーブルです。

users<\-->中間テーブル(user_groups)<\-->groups  
↑  
↓  
comments

↓はdatabase/migrations/2020_06_11_152935_create_user_groups_table.phpです。

[code]

    use Illuminate\Database\Migrations\Migration;
    use Illuminate\Database\Schema\Blueprint;
    use Illuminate\Support\Facades\Schema;
    
    class CreateUserGroupsTable extends Migration
    {
        public function up()
        {
            Schema::create('user_groups', function (Blueprint $table) {
                $table->increments('id');
                $table->bigInteger('user_id')->unsigned();
                $table->bigInteger('group_id')->unsigned();
                $table->foreign('user_id')->references('id')->on('users');
                $table->foreign('group_id')->references('id')->on('groups');
                $table->unique(['user_id', 'group_id'], 'uq_user_groups');
                $table->timestamps();
            });
        }
    
        public function down()
        {
            Schema::dropIfExists('user_groups');
        }
    }
    
[/code]

よろしくお願いします。


CC BY-SA 4.0
2020-06-12T12:38:39.553
67594
2022-08-13T17:04:05.403
32180
question
laravel
Laravel7　マイグレーションのエラー　General error: 3780


外部キーの対象となる側のidをincrements('id')で設定していたので、create_user_groups_table.phpでは$table->integer('user_id')->unsigned();とすればよいだけでした。


CC BY-SA 4.0
2020-06-12T13:30:26.413
67597
2020-06-12T13:30:26.413
32180
67594
answer