سلام
من لاراول jetstream رو نصب کردم برای migrate کردن اولیه tabale های دیفالت خود لاراول خطای زیر رو میده و فقط user-table مایگریت می شه و بعد خطای زیر رو میده و نمی دونم دلیلش چیه؟؟؟
C:\xampp\htdocs\laravel8-with-jetstream>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 C:\xampp\htdocs\laravel8-with-jetstream\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 C:\xampp\htdocs\laravel8-with-jetstream\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 C:\xampp\htdocs\laravel8-with-jetstream\vendor\laravel\framework\src\Illuminate\Database\Connection.php:464
PDOStatement::execute()
با سلام
توی متد boot کلاس AppServiceProvider خط زیر را اضافه کنید:
Schema::defaultStringLength(191);
موفق باشید
با سلام
این خطا از نسخهی 5.4 لاراول به بعد به وجود اومده، چون در این نسخه Character set پیشفرض دیتابیس به utf8mb4 تغییر کرده که بشه توی فیلدها ایموجی هم قرار داد. شما میتوانید وارد بخش `app/Provider` بشوید و سپس در فایل `AppServiceProvider.php` این کد رو قرار دهید.
use Illuminate\Support\Facades\Schema;
public function boot()
{
Schema::defaultStringLength(191);
}
موفق باشید
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)