You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel迁移修改字段为tinyInteger却变为double的问题排查

问题原因与解决办法

你的问题出在缺少doctrine/dbal扩展包——Laravel的字段类型修改功能(change()方法)依赖这个第三方库来解析和转换数据库字段类型,没有安装它的话,Laravel无法正确识别tinyInteger类型,从而出现类型转换错误(比如变成double)。

解决步骤:

  • 首先通过Composer安装依赖包:
    composer require doctrine/dbal
    
  • 重新运行迁移命令:
    php artisan migrate
    
  • 再次查看数据库字段,类型应该会正确更新为tinyInteger。

额外注意:如果原字段带有其他约束(比如nullable、默认值、unsigned等),修改时需要在链式调用中保留这些约束,否则会丢失原有设置。例如:

Schema::whenTableHasColumn($tb_name, $column_name, function (Blueprint $table) {
    $table->tinyInteger($column_name)->unsigned()->nullable()->change();
});

内容的提问来源于stack exchange,提问作者Devinfo_DH

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 16:30:40