Laravel Migration: ключ автоинкремента, если он не является первичным

Я пытаюсь создать таблицу с миграциями Laravel, но у меня возникли некоторые проблемы.
Мне просто нужно создать таблицу с первичной парой («id» и «revision»), так как «id» — автоинкремент.
Я могу сделать это в MySQL, но мне не удается сделать это с помощью Laravel Migrations, так как increments () также устанавливает поле в качестве основного.
Пока у меня есть это:

Schema::create('bibliographies', function(Blueprint $table)
{
$table->increments('id');
$table->integer('revision');
...
$table->timestamps();
$table->softDeletes();
$table->primary(array('id', 'revision'));
});

Примечание: изменение метода increments () не является опцией, так как это ядро ​​Laravel.

Спасибо за вашу помощь заранее.

4

Решение

Просто отбросить первичный ключ перед повторным добавлением:

$table->dropPrimary( 'id' );
$table->primary( array( 'id', 'revision' ) );
5

Другие решения

 $table->unsignedInteger('id')->change();//will remove the auto increment
$table->dropPrimary('id');//will remove primary constrain
$table->unsignedInteger('revision') //add revision column
$table->primary( array( 'id', 'revision' ) );//make them both primary
$table->increments('id')->change()//add the auto increment constrain back
0