原迁移只按固定 id(76-84) 判断是否存在:若线上 admin_power 的 这些 id 已被其它菜单占用,升级会静默跳过,菜单依旧不出现, 而 start.sh 里 flask db upgrade 的失败/跳过只打 WARN,不易察觉。 调整: - 先按 code / name+type 业务键查找,命中则仅补 open_type、不重复插入 - 固定 id 被占用时顺延到 max(id)+1,并用 id_map 修正父子 parent_id 关联 已用临时库验证两种场景: - 76-84 被占用 -> 菜单落在 85-93,父子关联与 open_type 正确 - 重复执行 -> 仍为 9 条,不重复插入
Single-database configuration for Flask.