Laravel Миграция - слишком длинное имя ключа, несмотря на то, что оно «тестовое»; MySQL Ошибка 42000 - PullRequest
1 голос
/ 25 февраля 2020

Миграция выглядит следующим образом:

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CreateExtensiontablesRegistry extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('extensiontables_registry', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->string('extensiontable_name')->nullable(false);//->unique();
            $table->timestamps();
            $table->unique('extensiontable_name', 'test');
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('extensiontables_registry');
    }
}

Теперь, когда я запускаю ее, я получаю следующие ошибки в свой cmd:

In Connection.php line 669:

  SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was t
  oo long; max key length is 767 bytes (SQL: alter table `extensiontables_reg
  istry` add unique `test`(`extensiontable_name`))


In Connection.php line 463:

  SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was t
  oo long; max key length is 767 bytes

Почему это так? Я имею в виду, "тест" не может быть слишком длинным именем ключа, не так ли? Я также попробовал этот подход: https://laravel-news.com/laravel-5-4-key-too-long-error

Но это тоже не помогло: (

1 Ответ

0 голосов
/ 26 февраля 2020

Ну, это может быть не «правильное» решение, но оно сработало для меня: просто скачайте версию XAMPP с более свежим дистрибутивом mariaDB, по крайней мере, одну выше 10.1 (например, 10.2 и т. Д.). Вот ссылка на портативную версию XAMPP с mariaDB 10.4: https://sourceforge.net/projects/xampp/files/XAMPP%20Windows/7.4.2/

...