我得到一個錯誤,當我嘗試從字符串到文本的列類型時,使用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();
...
});
}
我得到了錯誤。
[照亮\數據庫\ QueryException]
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
@patricus'sro_key_group'不是多個索引 – ThunderBirdsX3
@ ThunderBirdsX3請參閱http://stackoverflow.com/questions/1827063/mysql-error-key-specification-without-a-key-length –