Q:

La migration de laravel 5.7.28 no hace la relación de muchos a muchos

He intentado crear la migración con relacion de muchos a muchos y desde luego usando la palabra reservada FOREIGN KEY, y claro también de manera secuencial para que no me marque error de que no existe ninguna de las dos tablas que quiero relacionar con la tabla pivote. Aqui el error SQLSTATE[HY000]: General error: 1215 Cannot add foreign key constraint (SQL: alter table role_user add constraint role_user_user_id_foreign foreign key (user_id) references users (id))
A continuación los archivos de migración exactamente secuencial:
create_users_table
  public function up()
{
    Schema::create('users', function (Blueprint $table) {
        $table->bigIncrements('id');
        $table->string('name');
        $table->string('last_name');
        $table->string('second_last_name');
        $table->string('pro_license')->unique();
        $table->string('email')->unique();
        $table->string('username')->unique();
        $table->timestamp('email_verified_at')->nullable();
        $table->string('password');
        $table->rememberToken();
        $table->timestamps();
    });
}

create_roles_table
   public function up()
    {
        Schema::create('roles', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->string('name');
            $table->timestamps();
        });
    }

create_role_user_table
Schema::create('role_user', function (Blueprint $table) {
        $table->bigIncrements('id');
        $table->timestamps();
        $table->string('description');
        $table->unsignedBigInteger('user_id');
        $table->unsignedBigInteger('role_id');
        $table->foreign('user_id')->references('id')->on('users');
        $table->foreign('role_id')->references('id')->on('roles');
        $table->engine = 'InnoDB';
    });

Se que hay post similares a este pero sólo eran detalles con la orden de la creación de las tablas o el tipo de dato que resolvía sus problemas, yo cambie del método Increments() a BigIncrements(). La versión de MYSQL es 5.7.26 Y PHP 7.2.

A:

Si se hace uso del motor InnoDB en Mysql para mantener la integridad de los datos se tiene que usar en todas las tablas de esta manera $table->engine = InnoDB, ya que si no la agregas en una tabla que deseas relacionar, por defecto se agrega el motor Myisam, produciendo una inconsistencia y provocando el error General error: 1215 Cannot add foreign key constraint

