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

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

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

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

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

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

MySQL 版本是 5.7。

小时候,幸福是一件很简单的事;长大了,简单是一件很幸福的事。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 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年前 评论

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