最近在搞一个多模态检索系统,数据库模型随着特征工程迭代频繁变更,Alembic的auto-generation几乎每两次迁移就会出一次错,尤其是涉及JSON字段和向量索引时。资讯里提到的‘迁移策略’其实漏掉了最关键的痛点:AI项目的schema变更往往伴随数据回填,而Alembic的downgrade对自定义类型(比如pgvector的索引)支持极差。我个人的经验是,必须手写revision里的upgrade/downgrade逻辑,并且用批量脚本来验证数据完整性。
一个值得讨论的问题:当模型特征维度变化导致旧索引失效时,大家是选择重建表还是原地ALTER?另一个是:有没有人尝试过用SQLAlchemy的event listener来动态追踪embedding字段变更,从而减少手动迁移?
从行业趋势看,AI工程化正在倒逼数据库工具链进化。Alembic这种‘通用迁移’方案在快速变化的AI场景下显得笨重,未来可能会出现专门面向向量数据库的迁移框架,或者引入类似feature store的版本管理机制。各位在实战中遇到过什么奇葩的迁移错误?来分享一下避坑指南。