dehtak

Ahoj, Nevim cim to, ale kdyz dam prikaz artisan migrate tak mi to vyhodi chyby a nevytvori vsechny tabulky a to chci jen vytvorit ty co uz jsou prednastaveny od laravelu (user, failed_jobs...) Microsoft Windows [Verze 6.1.7601] Copyright (c) 2009 Microsoft Corporation. Všechna práva vyhrazena.


w:\008>php artisan migrate
Migration table created successfully.
Migrating: 2014_10_12_000000_create_users_table

   Illuminate\Database\QueryException

  SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes (SQL: alter table `users` add unique `users_email_unique`(`email`))

  at W:\008\vendor\laravel\framework\src\Illuminate\Database\Connection.php:671
    667▕         // If an exception occurs when attempting to run a query, we'll format the error
    668▕         // message to include the bindings with SQL, which will make this exception a
    669▕         // lot more helpful to the developer instead of just the database's errors.
    670▕         catch (Exception $e) {
  ➜ 671▕             throw new QueryException(
    672▕                 $query, $this->prepareBindings($bindings), $e
    673▕             );
    674▕         }
    675▕
     }
    675▕

  1   W:\008\vendor\laravel\framework\src\Illuminate\Database\Connection.php:464
      PDOException::("SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes")

  2   W:\008\vendor\laravel\framework\src\Illuminate\Database\Connection.php:464
      PDOStatement::execute()

Nekde sem udelal chybu nechapu

Ešte nie si členom CZ/SK Laravel komunity?

To možeš ľahko zmeniť. Registrácia je zdarma a ako registrovaný člen získaš množstvo výhod. Prečítaj si prečo by si mal byť členom.

Prihlásiť sa Zaregistrovať
Zoradiť odpovede:
xvital
by @xvital (460), pred 4 rokmi

Je to tym, ze Laravel defaultne pouziva kodovanie utf8mb4 a v MySQL v. < 5.7.7 a MariaDB < 10.2.2 sa tam tieto kluce nezmestia.

Jednoduchy fix je zavolat v boot metode v AppServiceProvider toto:

Schema::defaultStringLength(191);

cim sa zabezpeci nastavenie pozadovanej dlzky indexov.

Viac info tu: https://laravel.com/docs/7.x/migrations#creating-indexes (Index Lengths & MySQL / MariaDB)