Laravel 迁移中作为主键的字符串

String as Primary Key in Laravel migration

我必须更改数据库中的 table,这样 primary key 就不是标准的 increments

这是迁移,

public function up()
{
    Schema::create('settings', function (Blueprint $table) {
        $table->text('code', 30)->primary();
        $table->timestamps();
        $table->text('name');
        $table->text('comment');
    });
}

然而,MySQL 不断返回,

Syntax error or access violation: 1170 BLOB/TEXT column 'code' used in key specification without a key length (SQL: alter table settings add primary key settings_code_primary(code)

我试过将正常的 increments id 保留在那里并在不同的迁移中修改 table 但同样的事情发生了。

对我做错了什么有什么想法吗?

Laveral Version 5.4.23

将其更改为字符串。

$table->string('code', 30)->primary();