ОБНОВЛЕНИЕ: Сейчас я собираюсь отказаться от внешнего ключа. Похоже, мой проект не работает на фундаментальном уровне, поэтому я вернусь к нему позже. Я ценю двух полезных парней в комментариях.
Я пытаюсь включить внешние ключи в свое приложение Laravel, но я просто застреваю. Я продолжаю получать "errno: 150 "Foreign key constaint is incorrectly formed".
Даже после попытки нескольких решений, удаления таблицы, изменения порядка миграции и т. Д., Я продолжаю возвращаться к этой ошибке. Это очень расстраивает.
Я также попробовал php artisan migrate:refresh
и php artisan migrate:reset
, но, похоже, ничего не помогло.
В приведенном ниже коде есть фрагмент кода из CreateQuestionsTable class
Schema::table('questions', function(Blueprint $table){
$table->foreign('answerTypeName')->references('answerType')->on('answerstypes');
});
Я пытался поместить это в CreateAnswersTable class
, но это тоже не решило.
В приведенном ниже коде есть еще один фрагмент кода из CreateQuestionsTable class
Schema::create('questions', function (Blueprint $table) {
$table->increments('id');
$table->string('questionName');
$table->string('answerTypeName');
$table->timestamps();
});
Здесь я также попытался изменить answerTypeName
на answerTypeId
с $table->integer
, но это также не помогло.
class CreateQuestionsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('questions', function (Blueprint $table) {
$table->increments('id');
$table->string('questionName');
$table->string('answerTypeName');
$table->timestamps();
});
Schema::table('questions', function(Blueprint $table){
$table->foreign('answerTypeName')->references('answerType')->on('answerstypes');
});
}
}
class CreateAnswertypesTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('answerstypes', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('answerType');
$table->timestamps();
});
}
}
Это ошибка, которая продолжает появляться
PDOException::("SQLSTATE[HY000]: General error: 1005 Can't create table `impact_dockwize`.`questions` (errno: 150 "Foreign key constraint is incorrectly formed")")
Я ожидаю, что это будет работать так, но ошибка продолжает появляться, когда я пытаюсь выполнить миграцию php artisan. Как я уже упоминал выше, применение php artisan migrate: обновление или сброс, похоже, не работают.