【发布时间】:2017-07-28 12:49:27
【问题描述】:
我得到一个错误,当我尝试从字符串到文本的列类型时,使用 Laravel 的迁移功能。
文件:{data_time}_change_db_structure.php
public function up()
{
Schema::table('service_request_type', function (Blueprint $table) {
$table->dropIndex(['sro_key_group']);
$table->text('sro_key_group')->change();
$table->renameColumn('sro_key_group', 'tags');
});
}
这是原始迁移创建表文件。
public function up()
{
Schema::create('service_request_type', function (Blueprint $table) {
$table->engine = 'InnoDB';
...
$table->string('sro_key_group', 100)->nullable()->index();
...
});
}
我遇到了错误。
[照亮\数据库\查询异常]
SQLSTATE [42000]:语法错误或访问冲突:1170 BLOB/TEXT 没有密钥长度的密钥规范中使用的列“sro_key_group” (SQL: ALTER TABLE service_request_type CHANGE sro_key_group sro _key_group TEXT DEFAULT NULL COLLATE utf8_unicode_ci)[Doctrine\DBAL\Driver\PDOException]SQLSTATE[42000]:语法错误或访问冲突:1170 BLOB/TEXT 没有密钥长度的密钥规范中使用的列“sro_key_group”
[PDOException]SQLSTATE[42000]:语法错误或访问冲突:1170 BLOB/TEXT 没有密钥长度的密钥规范中使用的列“sro_key_group”
怎么了?我已经在我的composer.json 中安装了doctrine/dbal。
【问题讨论】:
-
sro_key_group是否在多个索引中? -
@patricus
sro_key_group不是多个索引 -
@ThunderBirdsX3 看到这个stackoverflow.com/questions/1827063/…
-
@GauravDave 谢谢,但请看下面我的回答。
-
是的,我看到了。我分享的链接和你写的答案不匹配(不知何故)。
标签: laravel laravel-5 laravel-5.4 dbal