来源:互联网 更新时间:2026-06-10 12:46
技术活儿要想干得漂亮,准备工作必须到位。用通义灵码自动生成Liquibase数据库迁移脚本,看着很酷,但AI再聪明也不是你肚子里的蛔虫。它需要你先交代清楚:数据库当前长什么样、你打算怎么改、以及项目里已有的那些Liquibase“潜规则”(比如changelog路径放哪、author字段用什么格式、要不要加preconditions)。这些信息不给全,生成的XML或YAML脚本要么根本跑不通,要么直接跟你的CI/CD流水线干起来。
所以,这件事拆开来看,核心就是三步走。
先翻翻你项目根目录下的liquibase.properties或application.yml,确认changeLogFile的路径是不是写对了(比如指向src/main/resources/db/changelog/db.changelog-master.yaml),以及url和username这些连接参数是否已经配好。这一步是地基,没这块,通义灵码连你把变更加在哪都不知道,生成的脚本只能是“无根浮萍”。
接着,在IDE里找到那个主changelog文件,右键选“Open in Terminal”,跑一下liquibase status --verbose,看看当前已经应用了多少个changeset。这一步决定了你新生成的id必须大于这个数,否则执行时就会报“duplicate key”的错误,别小看这一步。
轮到AI上场了。在通义灵码输入框里,乖乖贴上下面这段结构化提示,括号里的说明别偷懒省略:
「请生成一个Liquibase changeset,用于在MySQL 8.0环境下向user_profile表添加last_login_at DATETIME列,默认值为NULL,要求:① author字段填我的英文名zhangsan;② id按当前changelog末尾最大id+1递增(当前最大id是127);③ 使用YAML格式;④ 不带precondition;⑤ 变更类型为addColumn。」
这里的关键在于:id必须显式声明递增。Liquibase本身不校验id顺序,但CI/CD流水线通常依赖id单调递增来做diff。要是跳了号,流水线一看,“咦,中间有个变更没执行?”,结果就误判成未执行变更,最后够你折腾的。
通义灵码返回的YAML块通常以- changeSet:开头,直接复制整段内容,注意保留所有缩进。
打开db.changelog-master.yaml,滑到文件末尾,定位到最后一行- include:或- changeSet:之后,换行,粘贴新内容。YAML对缩进敏感这个老生常谈的问题,还是得再唠叨一句:id:和author:要顶格写,changes:缩进2空格,- addColumn:再缩进2空格。
有一点必须警惕:
# This changeSet was generated by Tongyi Lingma),毫不犹豫删掉它。#开头的行当注释,但某些旧版本(比如4.23.0以下)在YAML模式下遇到非标准注释时,会直接跳过整个changeSet,导致变更根本没被注册,你跑半天还不知道问题出在哪。保存文件后,在终端执行liquibase validate。如果输出Validation passed,那恭喜,语法无误;如果报unexpected end of stream,多半是粘贴时丢了空行或缩进错位,回去调一下就好。
摩托车活塞环性能如何
ThinkBook系列最新价格全解析:2026年选购避坑与实时询价指南
Ondo将于今日上线股票永续合约
暗黑4S14野蛮人终局BD攻略
区块链OTC交易所有哪几家比较正规?
货拉拉如何查看历史订单 货拉拉往期行程轨迹查询【功能教学】
Binance新增15种bStocks代币化证券为杠杆抵押资产
Meme币DOGS今晚上线!开局就解锁91%代币是否带来风险?
晶核艾尔莎角色盘点 晶核艾尔莎强度分析与实战表现
赵云与阿斗神兵符使用教程 神兵符怎么使用
剑侠世界3雪峰论剑怎么打-剑侠世界3雪峰论剑打法介绍
余姚的路虎4s店在哪个位置
五千元以下的笔记本几乎消失!经销商:至少一年看不到涨价尽头
Intel喜讯连连:18A工艺良率提升到85%、CPU将涨价15%
今日小鸡庄园答案2026.7.2
美债股纳斯达克首盘暴跌38%且加密代理交易解体,AVAX价格何去何从?
男生头像配网名可爱(精选100个)
国家养老服务消费补贴上线京东
英伟达机器人团队在京沪深招人,聚焦具身智能等四大领域
一站式PDF转Markdown解决方案PDF3MD
手机号码测吉凶
本站所有软件,都由网友上传,如有侵犯你的版权,请发邮件haolingcc@hotmail.com 联系删除。 版权所有 Copyright@2012-2013 haoling.cc