摘要:“凌晨三点,生产库突然挂掉,结果只是因为一个忘记同步的索引脚本——Flyway本可以拦住这场。”
“凌晨三点,生产库突然挂掉,结果只是因为一个忘记同步的索引脚本——Flyway本可以拦住这场。”
很多团队把版本控制全押在Git,却放任数据库像野孩子乱跑。
Flyway的核心秘密只是一张自动生成的flyway_schema_history表:谁在什么时间跑了哪段脚本,一次不漏。
这张表像打卡机,谁没刷卡都看得一清二楚,回滚时再也不用手动翻日志。
说人话:把SQL文件按V1__Init、V2__AddIndex这种方式命名,丢进resources/db/migration,启动应用就自动执行;顺序乱了、脚本改了、环境没同步,都会报错拦住,绝不睁一只眼闭一只眼。
2025年社区版悄悄多出了两件“小棉袄”。
第一件,Redshift和BigQuery正式进入官方支持列表,脚本再也不用自己写JDBC奇技淫巧。
第二件,预览版AI助手能读你的DDL,自动生成rollback脚本——实测对加列、删列、重命名三张表以内的操作,生成回滚成功率90%,省掉大把人肉比对时间。
日常踩坑指南:
别在脚本里写INSERT业务数据,那条记录可能被重复插入。
回滚脚本别用DROP IF EXISTS,用重命名到_backup更安全。
在多模块项目里,给每个域名单独起一套migration路径,防止脚本编号撞车。
有人担心企业版太贵?
社区版其实足够中小团队用。
如果必须审计到每条SELECT或者想在Kubernetes里做无密钥滚动,企业版的秘钥管理和审计API才不心疼钱。
最后留一句大实话:最怕的不是工具学不会,而是明知脚本会乱仍心存侥幸。
Flyway不是银弹,却能把“忘了同步”这种低级错误钉在耻辱柱上,让凌晨三点的电话变成历史。
来源:小萱科技观