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
相关产品推荐
相关产品推荐

