سوال بپرسید
0

خطای Base table or view already exists در لاراول

سوال بپرسید

با سلام و عرض ادب. من در حال دیدن پروژه وبلاگ لاارول روکسو هستم.

در بخشی که شما از کد زیر استفاده میکنید: بعد از migrate کردن هیچ ارروری ندارید ولی من اررور دارم و کلی هم سرچ کردم و حتی چندبار پروژه رو از صفر استارت زدم ولی همچنان این اررور رو دارم. عکس ارورر رو در زیر قرار میدم .

public function up()
{
    Schema::create('role_user', function (Blueprint $table) {
 
        $table->unsignedInteger('user_id');
        $table->unsignedInteger('role_id');

        $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
        $table->foreign('role_id')->references('id')->on('roles')->onDelete('cascade');
        $table->timestamps();
    });
}

 متن خطا:

SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'role_user' already exists (SQL: create table `role_user` (`user_id` int unsigned not null, `role_id` int unsigned not null, `created_at` timestamp null, `updated_at` timestamp null) default character set utf8mb4 collate 'utf8mb4_unicode_ci');

در عکس مربوطه پس از migrate کردن پیامی مبنی بر این که role_user وجود دارد رو میده در صورتی که با وجود اررور خودش جدول رو میسازه ولی مایگریت نمیکنه.
اگه اررور داره پس چرا جدول میسازه؟
مشابه این اررور رو هم در بخش postها که اونجا هم که دارید از این روند foreign استفاده میکنید تکرار شده و همین اررور رو دارم. 

ممنون میشم که راهنمایی کنید.

برچسب ها:
گزارش سوال
پرسیده شده در
آمار بازدید: 315

2 پاسخ

3

اگر موفق نشه migation که جدول رو بسازه پس توی refresh هم پاک نمیکنه جدول رو, باید دستی به phpmyadmin مراجعه کنید و جدول role_user رو حذف کنید 

yas1717 (31)
3

اگر جدولت ساخته شده ولی کلید خارجی ساحته نشده و از لاراول 5.8 استفاده میکنی  باید برای تعریف کلید خارجی  از این دستور استفاده کنی:

$table->bigInteger('user_id')->unsigned();
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');