Миграция Laravel 11 для внешних ключей в разных таблицах [дубликат]Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Миграция Laravel 11 для внешних ключей в разных таблицах [дубликат]

Сообщение Anonymous »

Я пытался решить эту проблему в течение двух дней и, наконец, сдался и попросил о помощи.
Я пытаюсь настроить базу данных с несколькими таблицами, здесь актуально:
Таблица: Коллекции:

Код: Выделить всё

Schema::create('collections', function (Blueprint $table) {
$table->id();
$table->foreignId('owner_id')->constrained(table:'users', indexName: 'collections_users_id');
$table->foreignId('library_id')->nullable()->constrained(table:'libraries', indexName: 'collections_libraries_id');
[...]
$table->timestamps();
});
И, как вы увидите выше, я пытаюсь настроить внешний ключ, допускающий значение NULL, для таблицы библиотек. Эта таблица определена в отдельном документе по миграции следующим образом:

Код: Выделить всё

Schema::create('libraries', function (Blueprint $table) {
$table->id();
$table->foreignId('creator_id')->constrained(table: 'users', indexName: 'collections_users_id');
[...]            $table->timestamps();
});
Внешний ключ Owner_id работает без проблем. Затем при запуске миграции я получаю следующую ошибку:

Код: Выделить всё

SQLSTATE[HY000]: General error: 1005 Can't create table `TABLENAME`.`collections` (errno: 150 "Foreign key constraint is incorrectly formed") (Connection: mysql, SQL: alter table `collections` add constraint `collections_library_id_foreign` foreign key (`library_id`) references `libraries` (`id`))
Миграции не запускают файл библиотек до тех пор, пока не будут собраны коллекции, что, как я полагаю, является основной проблемой. Но я не могу понять, как мне с этим справиться. Что мне не хватает?

Подробнее здесь: https://stackoverflow.com/questions/785 ... ent-tables
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»