Laravel Migration:当它不是主要时自动增加密钥

时间:2014-11-01 21:17:42

标签: php mysql laravel laravel-4 database-migration

我试图创建一个包含Laravel迁移的表,但我遇到了一些麻烦。 我只需要创建一个包含主要对的表(' id'和' revision'),即“' id'自动增量。 我可以在MySQL中完成它,但是我无法通过Laravel Migrations来实现它,因为incrementments()也将字段设置为主要字段。 到目前为止,我有这个:

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

注意:更改incrementments()方法不是一个选项,因为它是Laravel核心。

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:5)

重新添加之前只需drop the primary key

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

答案 1 :(得分:0)

 $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