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

Laravel迁移修改含连字符字段名报错,求解决方案

解决Laravel迁移重命名带连字符字段的语法错误问题

问题根源在于带连字符的字段名meta-description——在MySQL/MariaDB中,这类包含特殊字符的标识符必须用反引号()包裹,而Laravel默认的renameColumn`方法未自动处理该情况,导致生成的SQL语句出现语法错误。

直接修改迁移文件代码,改用原生SQL语句执行字段重命名:

use Illuminate\Support\Facades\DB;

Schema::table('settings', function (Blueprint $table) {
    DB::statement('ALTER TABLE `settings` CHANGE `meta-description` `metaDescription` VARCHAR(255) NOT NULL');
});

修改完成后重新执行php artisan migrate,即可成功将meta-description字段重命名为metaDescription。

注意:请确保SQL语句中的字段类型(如示例中的VARCHAR(255))、约束(如NOT NULL)与原字段完全一致,若原字段有默认值、索引等其他属性,需同步调整语句参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 18:48:24