I'm migrating to the database with a lumen, and I get the error that the primary key is too long. What I want is to put the three columns as composite keys.
public function up()
{
if(!Schema::hasTable('asignaturas_alumno')){
Schema::create('asignaturas_alumno',function (Blueprint $table){
$table->engine = 'InnoDB';
$table->bigInteger('id_curso_asignatura');
$table->bigInteger('id_alumno');
$table->bigInteger('id_curso_escolar');
$table->primary(['id_alumno','id_curso_escolar','id_curso_asignatura']);
});
}
}
This error:
[Illuminate\Database\QueryException]
SQLSTATE[42000]: Syntax error or access violation: 1059 Identifier name
'asignaturas_alumno_id_alumno_id_curso_escolar_id_curso_asignatura_primary' is
too long (SQL: alter tabl
e 'asignaturas_alumno' add primary key 'asignaturas_alumno_id_alumno_id_curso_escolar_id_curso_asignatura_primary'('id_alumno', 'id_curso_escolar', 'id_curso_asignatura'))
[Doctrine\DBAL\Driver\PDOException]
SQLSTATE[42000]: Syntax error or access violation: 1059 Identifier name 'asignaturas_alumno_id_alumno_id_curso_escolar_id_curso_asignatura_primary' is too long
[PDOException]
SQLSTATE[42000]: Syntax error or access violation: 1059 Identifier name 'asignaturas_alumno_id_alumno_id_curso_escolar_id_curso_asignatura_primary' is too long