مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

محمدی

عضویت از 1399/08/25

خطا و عدم انجام migration در لاراول 8 جت استریم

  • چهارشنبه 28 آبان 1399
  • 11:24
تشکر میکنم

سلام 

من لاراول 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()

 

پاسخ های این پرسش

تعداد پاسخ ها : 2 پاسخ
کاربر سایت

mehsad

عضویت از 1394/06/21

  • پنجشنبه 29 آبان 1399
  • 22:33

با سلام

توی متد boot کلاس AppServiceProvider خط زیر را اضافه کنید:

    Schema::defaultStringLength(191);

موفق باشید

کاربر سایت

علیرضا تحریری

عضویت از 1402/03/29

  • دوشنبه 29 خرداد 1402
  • 22:39

با سلام 

این خطا از نسخه‌ی 5.4 لاراول به بعد به وجود اومده، چون در این نسخه Character set پیش‌فرض دیتابیس به utf8mb4 تغییر کرده که بشه توی فیلدها ایموجی هم قرار داد. شما میتوانید وارد بخش `app/Provider` بشوید و سپس در فایل `AppServiceProvider.php` این کد رو قرار دهید.

use Illuminate\Support\Facades\Schema;

public function boot()
{
    Schema::defaultStringLength(191);
}

موفق باشید

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)