【发布时间】:2018-01-14 20:55:29
【问题描述】:
我有几个表需要tinyint 字段,这些字段必须是unsigned 并设置为auto_increment。
L5.3 Database : Migrations documentation没有有定义unsigned auto-incrementing tinyint的方法。
我尝试使用DB::update() 来实现它。我的表迁移文件如下所示:
public function up()
{
Schema::create('table_name', function (Blueprint $table)
{
$table->unsignedTinyInteger('field1');
$table->string('field2', 255);
$table->primary('field1');
$table->index('field2');
$field = "field1";
});
$this->addAutoIncrements($field);
}
public function addAutoIncrements($field)
{
DB::update('ALTER TABLE table_name MODIFY $field TINYINT UNSIGNED NOT NULL AUTO_INCREMENT');
}
当我尝试 php artisan migrate 使用这样的迁移文件时,它迁移没有任何错误,但没有分配 auto-increment。
我该如何解决这个问题?我应该将更新作为全新的迁移进行吗?有人做过吗?
【问题讨论】:
-
$table->unsignedTinyInteger('field1')->increments(); -
@Ali :这是我首先尝试的。没用。
标签: mysql laravel laravel-5.3 database-migration