假设有 user 微服务和 user 表.
user 微服务新增了一个迭代 v1.0.2 ,但是有一个 break change ,需要:
- user 表新增一个字段 aaa
- aaa 字段需要根据每个 user 的情况赋予不同初始值
- user 表删除一个字段 bbb
目前有两种方案:
- user 微服务 v1.0.2 上线后去 migrate user1.0.2.sql
- 让 dba 在上线时配合去执行这些操作
这里只是举一个例子。
方案 1 感觉用的不少,但个人感觉线上 ddl 还是选择方案 2 dba 处理更稳妥一点, 特别是数据量大时涉及到锁表啥的。
请问什么情况下使用方案 1 ,什么情况下使用方案 2 ?想要各位后端大佬们的一些好的实践方案。
|