مایگریشن در لاراول

شاید شما هم مثل من وقتی یه پروژه لاراولی رو دارید راه اندازی میکنید با مشکل عدم اجرای مایگریت ها مواجه بشید . منظورم اینه که وقتی میخواهید دستور زیر رو اجرا کنید ، کامپوزر به مشکل بر میخوره و یکسری خطاهایی رو به شما بده که من نمونه هایی رو در زیر آوردم :

 

دستوری که صحبت ازش داریم اینه :

php artisan migrate
 

برای رفع خطای زیر در لاراول هنگام اجرای دستور فوق راهکاری رو در پائین همین پست نوشتم که می تونید امتحان کنید :

 

خطا : 

 Illuminate\Database\QueryException  : SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long;

max key length is 1000 bytes (SQL: alter table `users` add unique `users_email_unique`(`email`))

  at C:\wamp64\www\MyProjects\siblearn\vendor\laravel\framework\src\

Illuminate\Database\Connection.php: 664
    660|         // If an exception occurs when attempting to run a query, we'll format the error
    661|         // message to include the bindings with SQL, which will make this exception a
    662|         // lot more helpful to the developer instead of just the database's errors.
    663|         catch (Exception $e) {
  > 664|             throw new QueryException(
    665|                 $query, $this->prepareBindings($bindings), $e
    666|             );
    667|         }
    668|

  Exception trace:

  1   PDOException::("SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes")
      C:\wamp64\www\MyProjects\siblearn\vendor\laravel\framework\src\

Illuminate\Database\Connection.php : 458

  2   PDOStatement::execute()
      C:\wamp64\www\MyProjects\siblearn\vendor\laravel\framework\src\Illuminate\

Database\Connection.php : 458

  Please use the argument -v to see more details.

 

-----------------------------------

 

راهکار حل مشکل :

در پروژه لاراولی خودتون وارد فایل زیر شوید :

config/database.php

 

عبارت زیر رو پیدا کنید :

 

'engine' => null',
 
حال آنرا پاک کنید و بجای آن عبارت زیر را جایگزین کنید :
 
'engine' => 'InnoDB ROW_FORMAT=DYNAMIC',
 
حالا مجددا به محیط کامند لاین کامپوزر برگردید و دستور اجرای migration ها رو اجرا کنید که بصورت زیر میباشد :
 
php artisan migrate