Почему миграция Laravel 5.8 не работает без изменения имени таблицы? - PullRequest
1 голос
/ 23 декабря 2019

У меня есть следующая схема таблицы:

Schema::create('users', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->string('name');
            $table->string('email');
            $table->timestamp('email_verified_at')->nullable();
            $table->string('password');
            $table->string('account_type')->default('1,1,0');
            $table->string('theme')->default('light');
            $table->string('unique_id')->nullable();
            $table->string('avatar')->nullable();
            $table->rememberToken();
            $table->timestamps();
            $table->unsignedBigInteger('plan_id');
            $table->foreign('plan_id')->references('id')->on('plans');
            $table->unique('email');
        });

Когда я запускаю миграцию, происходит сбой с ошибкой:

errno: 150 "Неправильно сформировано ограничение внешнего ключа"

Если я удалю внешний ключ, он все равно не будет работать.

Это сработает, если я изменю имя таблицы с 'users' на что-то еще, но потомпроизойдет сбой, если я запустлю его снова (требуя изменения имени таблицы).

Вот схема для таблицы, на которую есть ссылка, эта миграция также выполняется перед миграцией пользователей.

Schema::create('plans', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->string('name')->unique();
            $table->float('cost', 8, 2)->nullable();
            $table->integer('free_trial');
            $table->string('renewal_rate');
            $table->string('features');
            $table->string('stripe_plan');
            $table->boolean('featured')->default(true);
            $table->string('permission');
            $table->timestamps();
        });

Потратив несколько дней, пытаясь решить эту проблему, все, кажется, указывают на то, что bigIncrements / unsignedBigIncrements совпадает с опечатками в именах столбцов. У меня, похоже, нет этой проблемы ..

1 Ответ

0 голосов
/ 23 декабря 2019

Кажется, это проблема с XAMPP, переустановка XAMPP устранила проблему, я не уверен в ее причине, она также сократила время, необходимое для миграции, с примерно 5-10 секунд на таблицу до 0,1-0,6 настол.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...