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

Laravel执行迁移报1060重复列名cm_firebase_token错误如何解决

解决方案

错误原因

报错的核心逻辑是你的users数据库表中已经存在cm_firebase_token字段,迁移文件执行时尝试重复新增同名字段触发了数据库冲突,和你之前尝试的依赖更新、扩展安装没有关联,所以无法解决问题。

可行方案(按需选择)

方案1:修改迁移文件增加兼容性判断(最推荐,全环境通用)

修改对应迁移文件的up方法,先判断字段不存在再执行新增操作,后续任何环境执行迁移都不会再触发该报错,修改后代码如下:

public function up()
{
    Schema::table('users', function (Blueprint $table) {
        if (!Schema::hasColumn('users', 'cm_firebase_token')) {
            $table->string('cm_firebase_token')->nullable();
        }
    });
}

修改完成后重新执行php artisan migrate即可。

方案2:手动标记迁移已执行

如果你确认该字段已经是正确的表结构,不需要修改,可以手动在数据库的migrations表中插入该迁移的执行记录:

  1. 查看该迁移文件的完整文件名,例如2024_05_01_123456_add_cm_firebase_token_column_to_users_table.php
  2. 取文件名中.php前面的部分作为migration字段的记录值,batch字段取值为当前migrations表中最大的batch值加1,插入新记录即可
  3. 后续执行迁移时Laravel会默认该迁移已经执行,不会重复运行

方案3:手动删除重复字段后执行迁移

如果该字段是之前测试时手动添加的、不属于现有正确表结构,可以直接登录数据库,删除users表中的cm_firebase_token字段,再重新执行php artisan migrate。

方案4:重置全部迁移(仅本地开发环境可用)

如果是本地开发环境,数据库数据不需要保留,可以执行php artisan migrate:fresh命令清空所有表后重新执行全部迁移,注意该操作会清除所有数据库数据,生产环境严禁使用。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 15:18:03