Issue
I have a database Migration in Laravel 8 that goes like this:
class CreateArticlesTable extends Migration
{
public function up()
{
Schema::create('articles', function (Blueprint $table) {
$table->id();
$table->integer('user_id')->unsigned();
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
$table->string('title');
$table->string('slug');
$table->text('description');
$table->text('body');
$table->string('imageUrl');
$table->string('tags');
$table->integer('viewCount')->default(0);
$table->integer('commentCount')->default(0);
$table->timestamps();
});
}
public function down()
{
Schema::dropIfExists('articles');
}
}
But whenever I want to run this, I get this error:
General error: 1005 Can't create table elearning.articles (errno: 150 "Foreign key constraint is incorrectly formed")
I don't what the heck is going wrong here, so if you know how to solve this issue, please let me know...
Solution
Instead of using:
$table->integer('user_id')->unsigned();
Use:
$table->unsignedBigInteger();
Laravel uses unsignedBigInteger which is 20 digits and unsignedInteger only takes 11 digits
https://laravel.com/docs/8.x/migrations#foreign-key-constraints
Answered By - S. Hossain
0 Comments:
Post a Comment
Note: Only a member of this blog may post a comment.