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

执行php artisan migrate:fresh时Nova字段附件表迁移失败(ORA-00955)

解决Laravel迁移报错ORA-00955:序列名称已被占用

问题说明

执行php artisan migrate:fresh命令时,2022_12_19_000000_create_field_attachments_table迁移失败,报错ORA-00955,原因是数据库中已存在序列FMISC_ADMIN_TEST.nova_pending_field_attachments,迁移尝试重复创建该序列导致冲突。

解决方案

方案1:手动删除已存在的序列

登录Oracle数据库,执行以下SQL语句删除重复的序列:

DROP SEQUENCE FMISC_ADMIN_TEST.nova_pending_field_attachments;

注:执行此操作需要拥有该序列的删除权限

方案2:修改迁移文件,添加存在性检查

打开对应的迁移文件database/migrations/2022_12_19_000000_create_field_attachments_table.php,在创建序列的代码前增加判断逻辑,避免重复创建:

// 先检查序列是否存在
$sequenceExists = DB::selectOne("SELECT COUNT(*) AS count FROM user_sequences WHERE sequence_name = 'NOVA_PENDING_FIELD_ATTACHMENTS'");
if ($sequenceExists->count == 0) {
    DB::statement('create sequence FMISC_ADMIN_TEST.nova_pending_field_attachments minvalue 1  start with 1 increment by 1');
}

Oracle中序列名称默认大写,所以查询时要使用大写名称

方案3:强制清理后重新迁移

如果数据库中存在其他残留的迁移相关对象,可先清理数据库(注意提前备份数据),再重新执行迁移:

php artisan migrate:fresh --force

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 20:37:05