Ich habe den folgenden Fehler. Jemand versteht warum?PHP Artisan migrieren fehlschlägt Laravel
php Handwerkers
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`))
create_users_table.php wandern
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('name',255);
$table->string('email',255)->unique();
$table->string('password',255);
$table->rememberToken();
$table->timestamps();
});
Es ist wegen des Charakters in Gebrauch gesetzt mit 'email' Feld. 1 Zeichen ist nicht 1 Byte, es ist * wahrscheinlich * 4 Byte. Wenn Sie versuchen, dieses Feld eindeutig zu machen, schlägt es fehl, da die Spalte für die Indizierung zu lang ist. Die Lösung dieses Problems besteht in der Erstellung einer weiteren Spalte, die einen ** Hash ** der 'email' enthält. Sie können die Spalte "email_hash binary (20)" erstellen und dann den rohen 'sha1'-Hash der E-Mail dort speichern und so einzigartig machen. Das macht Ihren Index immer 20 Byte lang und funktioniert für Ihren Anwendungsfall. –