结论
V4.15.4版本中SYNCINDEX环境变量已弃用,新增MONGODEPRECATE_INDEX环境变量,默认值为true,用于控制是否清理Schema显式标记的废弃索引。FastGPT启动时会自动执行安全的索引同步,仅创建当前Schema缺失的索引,清理符合要求的系统内置废弃索引,保留客户自建索引与未声明索引。
具体怎么做
环境变量参数
MONGO_DEPRECATE_INDEX:默认值true,控制是否清理Schema标记的废弃索引,设为false时仅跳过废弃索引清理,不影响缺失索引创建。
如需在升级V4.15.4前完整删除历史过期索引,按以下步骤操作:
- 升级并启动一次V4.15.3版本
- 设置
SYNC_INDEX=true,重启服务并等待索引同步完成 - 确认索引同步成功后,再升级至V4.15.4版本
执行前需备份数据库。
注意事项
- V4.15.4不会自动标记任何历史索引为废弃,升级该版本时不会自动删除旧索引,后续版本将通过Schema显式废弃标记逐步清理对应索引。
- 该同步不会调用Mongoose的全量
syncIndexes(),不会按"未在Schema中声明"条件批量删除索引。 - 建议为自建索引显式设置自定义名称,避免与FastGPT系统内置索引重名。
- V4.15.3的索引同步会删除所有未在当时Schema中声明的索引,可能包含客户自建索引,执行步骤前需检查现有索引,或记录自建索引定义以便后续重建。
MONGO_DEPRECATE_INDEX=false仅跳过未来版本可能声明的废弃索引清理,不影响缺失索引的创建。
来源:FastGPT 官方文档