Сегодня несколько часов прострадал с миграцией... создаю промежуточную таблицу и указываю внешние ключи, один ключ ставится без проблем, второй ни в какую... типы полей идеинтичные (проверено вплоть до команды
SHOW CREATE TABLE table_name;
), имена верные, ошибка не информативная ниразу... не ставится даже напрямую через команды в терминале докер контейнера...
Гугл ничего внятного не дал (кроме банальщины с именами полей и таблиц и типами полей).
Куда можно еще копать? Пока так и оставил таблицу без одного внешнего ключика....
З.ы. была таблица, понадобился новый функционал, создал новую и промежуточную таблицу - на новую ключь вешается, на старую нет... сносить старую не вариант....
сама миграция:
class CreateProductTagTagGroupTable extends Migration
{
public function up()
{
Schema::create('product_tag_tag_group', function (Blueprint $table) {
$table->increments('id');
$table->unsignedInteger('product_tag_id');
$table->unsignedInteger('tag_group_id');
});
Schema::table('product_tag_tag_group', function (Blueprint $table) {
$table->foreign('product_tag_id')->references('id')->on('product_tags');
$table->foreign('tag_group_id')->references('id')->on('tag_groups');
});
}
public function down()
{
Schema::dropIfExists('product_tag_tag_group');
}
}