マイグレーションで外部キー制約を付けるときに気を付ける

incrementsで主キー設定した場合、unsigned属性が自動的に付与されるため、
外部キーにもunsigned属性を付与しないと、マイグレーション実行時にエラーになる。

Schema::create('users', function (Blueprint $table) {
    $table->increments('id');
})
Schema::create('posts', function (Blueprint $table) {
    $table->increments('id');
    $table->integer('user_id')->unsigned();
    
    // index
    $table->index('user_id');
            
    // foreign key
    $table->foreign('user_id')
        ->references('id')->on('users')
        ->onUpdate('cascade')
        ->onDelete('cascade');
})
よかったらシェアしてね!

この記事を書いた人

目次
閉じる