Laravel 5.7.28 迁移文件更改字段类型为 longtext 无效?

我在创建表的时候是如下语句:

$table->text('return_example')->nullable()->comment('返回示例');

之后我想通过迁移文件将此字段类型调整为 longtext 类型,迁移语句内容如下:

$table->longText('return_example')->nullable()->change();

运行之后没生效,我又尝试在创建表的迁移里直接写成 longtext 类型就可以了,这是一个 BUG 吗?还是我哪里操作出了问题,因为太过于信任迁移,没在本地进行观察字段类型就上线了,给我造成了一定的麻烦,很难受。

MySQL 版本是 5.7。

小时候,幸福是一件很简单的事;长大了,简单是一件很幸福的事。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 3

本人也出现过这种情况,change 修改字段 text 为 longtext 字段无效

5年前 评论

这个问题应该有个小 bug。官方内置的 doctrine/dbal 这个库引起的,我怀疑必须设置到值上去,可能就生效了,比如:

$table->longText('return_example')->comment('')->nullable()->change();
$table->longText('return_example')->default('')->nullable()->change();

这两种应该都可以是设置了对应的值。相关 issue 都有,你这个问题别人肯定遇到了。多用 Google 搜索一下。

4年前 评论