VP导航 VP导航
首页 提交网址

资讯文章 资讯 · NEWS

改表结构的脚本也该进版本库:目录站的数据库迁移该怎么管

2026-10-24 约 1,349 字 预计阅读 3 分钟 yiyunkj

改表结构的脚本也该进版本库:目录站的数据库迁移该怎么管 改

目录站上线三年,表结构改动少说也有几十次。如果这些改动散落在运维的聊天记录里,开发环境能跑、生产报错就是迟早的事。

迁移工具解决的不是"怎么改表",而是"谁改过、改了什么、现在是什么状态"这三个问题。工具本身很简单,难的是纪律。

数据库迁移脚本的命名、校验和回滚流程对照

图片来源:网络,版权归原作者所有,侵权请联系删除

命名一旦定下就别改

Flyway 的文件名是 V{版本}__{描述}.sql,中间是两个下划线,写一个会直接解析失败。已执行过的版本化脚本按版本顺序跑一次,绝不重复。

前缀用途行为
V版本化迁移按版本顺序执行一次,内容变了会报校验和不一致
R可重复迁移校验和变了就重跑,适合视图、存储过程
U撤销迁移与某个 V 对应,Flyway 社区版不带这个功能

Liquibase 不用文件名排序,靠 changeset 的 id 加 author 唯一标识,格式可以是 XML、YAML 或 SQL,一个 master changelog 串起来。回滚是它自带的,这也是它和 Flyway 最实际的分界线。

校验和报错不是麻烦,是保护

改了一个已经跑过的脚本,Flyway 启动时会直接拒绝:校验和对不上。很多人第一反应是关掉 validate-on-migrate,这是把报警器拆了。

正确做法是永远追加新版本。昨天加的字段类型写错了,今天就写 V12 去修正它,不要回去改 V11。这样开发环境从零建库、生产环境从 V10 升级,走的路径虽然不同,最终状态一致。

Liquibase 同理,changeset 一旦执行就当作不可变。真出了需要改的情况,用 rollback 回到上一个 tag 再重来。

回滚脚本的三种写法

DDL 的麻烦在于它经常不可逆。DROP COLUMN 能写反向语句,但列里的数据已经没了。ALTER TABLE ... MODIFY 缩短长度,回滚时超长的行放不回去。所以回滚要分三类处理:

  • 能直接反向的:加列、加索引、建表。反向语句写在回滚脚本里,Liquibase 还能自动生成一部分。
  • 需要补数据的:删列之前先把值存进一张备份表,回滚脚本从备份表写回去,并约定备份表什么时候清。
  • 不该有回滚脚本的:涉及数据清洗、加密、去重的迁移。这类改动错了就错了,回滚只会更乱,正确做法是先在从库或小流量上验证,再一次性推进。

迁移和代码发布分开跑

这是最容易踩的一条。代码和迁移放在同一次发布里,等于假设两边一定同时成功。更稳的顺序是业内常说的展开与收缩三段:

第一段,加新结构但老代码不用它(加列、加索引、允许为空);第二段,发新代码开始读写新结构,同时兼容旧结构;第三段,确认全量运行一段时间之后,删掉旧结构和兼容代码。

三段之间隔多久取决于你的回滚窗口。把第一段和第三段写进同一个脚本,等于放弃了中间出问题的退路。

CI 里跑三种库状态

只在本机跑一次迁移说明不了什么。CI 里至少覆盖三种起始状态:空库一路迁到最新、从上一版本升到最新、以及从最新状态回退。前两种保证新环境和老环境都能到同一个终点,第三种验证回滚脚本不是摆设。

再补两条配置纪律:生产环境开 clean-disabled,clean 会清空整个 schema,误操作一次就是灾难;ORM 的自动建表在生产上设成 none 或 validate,让迁移工具独管结构,两套东西同时改表必然打架。

给目录站加字段这件事,真正贵的不是写那条 SQL,是三年后没人说得清这张表为什么长这样。

本文标签 数据库迁移 Flyway命名规范 目录站发布流程
← 上一篇 OCSP 装订还留不留:2025 年之后,目录站 H 下一篇 → 失败了就重试,是目录站最容易写错的那行代码

— 本文完 —

提交网址

发现好站,欢迎自荐收录

站内搜索

站点统计

  • 今日审核0
  • 已收录站点3744
  • 正常访问3738
  • 失联站点6
  • 累计访问175

网站分类

  • AI工具 0
    AI对话0 AI绘画0 AI写作0 AI编程0 AI音视频0 AI办公效率0
  • 开发编程 0
    前端开发0 后端开发0 移动开发0 开源与代码托管0 数据库0 开发文档与教程0
  • 设计素材 0
    UI设计0 图标素材0 免费图库0 字体下载0 配色工具0 设计模板0
  • 站长工具 0
    网站统计0 SEO工具0 域名与主机0 收录提交0 建站程序0 运维监控0
  • 学习教育 0
    编程教程0 语言学习0 职业技能0 公开课与慕课0 考试题库0 中小学教育0
  • 生活服务 0
    交通出行0 外卖点餐0 房产租房0 医疗健康0 政务办事0 快递物流0
  • 影音娱乐 0
    影视观看0 音乐音频0 游戏资源0 短视频直播0 小说阅读0
  • 电商购物 0
    综合商城0 比价工具0 导购返利0 二手交易0 团购优惠0
  • 综合其他 1
    实用工具0 资源合集0 小众站点0 个人博客0 论坛社区0
  • 新闻资讯 0
    科技资讯8 财经媒体1 行业动态0 社会热点0 综合门户0
  • 资讯文章 390

最新收录

  • 车机屋-专业车机系统研究平台,海量正
  • Kimi
  • DeepSeek
  • 阿里巴巴矢量图标库
  • 通义千问
  • 首页那个「最新收录」模块,到底对抓取
  • 到底能扛多少:目录站的压测该测什么,
  • 分支开一周才合回来:目录站的分支策略

浏览排行

  1. 满分作文网 6
  2. Let's Enhance 3
  3. 淘菜菜 3
  4. MasterClass 3
  5. TypeScript 中文网 3
  6. Zhengziying 3
  7. 得意生活 3
  8. 镇江网友之家 3

联系我们

bQ:12345678

电话:400-8888-888

邮箱:admin@example.com

时间:09:00-21:00

友情链接

车机屋·焊锡条·探兔AI导航·静电测试仪·大学生联盟

关于我们|广告合作|隐私条款|网站地图

原ICP备00000000号-1,@2026

由 Z-BlogPHP 驱动