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 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 3

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

4年前 评论

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

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

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

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!