Почему я не могу выполнить миграцию с внешним ключом ограничения - PullRequest
1 голос
/ 30 апреля 2020

для домашней работы я должен сделать список задач в laravel 7, я делаю свою базу данных, но когда я пытаюсь создать внешний ключ для задачи таблицы

enter image description here и таблицы категорий enter image description here сбой программы по формуле: «SQLSTATE [HY000]: общая ошибка: 1824 Не удалось открыть ссылочную таблицу« категории »(SQL: изменить таблицу tasks добавить ограничение tasks_category_id_foreign ссылки на внешние ключи (categ ory_id) categories (id) при каскаде удалений) "

Я делал это много времени, но я не понимаю, почему я этого не делаю работать, если кто-то может объяснить правильный способ сделать это

Ответы [ 2 ]

0 голосов
/ 30 апреля 2020

Если Гас Коста прав, вы должны поступить так, как он говорит, но я хочу добавить, что ваш внешний ключ должен быть без знака

, и здесь вы найдете несколько хороших ответов «Общая ошибка: 1005 Не удается создать таблицу» с использованием Laravel Построение схемы и внешние ключи

    // CREATING TABLE
    Schema::create('table_name', function (Blueprint $table) {
    $table->engine = 'InnoDB';
        $table->integer('field_id')->unsigned; //for field that contains foreign key constraint
    });

    // FOREIGN KEY CONSTRAINT
    Schema::table('stock', function ($table) {
        $table->foreign('field_id')->references('id')->on('some_table')->onDelete('cascade')->onUpdate('cascade');
    });
0 голосов
/ 30 апреля 2020

Миграция пытается создать таблицу tasks до categories, таблица categories все еще не существует во время попытки создания FK.

Поменяйте местами порядок ваших миграции меняют свое имя файла. Каждый файл миграции в database/migrations имеет дату-время перед именем. Измените его так, чтобы дата переноса задач имела дату, превышающую дату категории.

...