【发布时间】:2022-02-24 18:49:53
【问题描述】:
我正在使用 Postgres DB,而对于迁移,我正在使用 Liquibase。 我有一个包含以下列的 ORDERS 表:
ID | DATE | NAME | CREATOR | ...
我需要添加一个新列来保存上次修改订单的用户 - 此列不应为空,并且应具有默认值,即 CREATOR。 对于新订单,我可以解决业务逻辑的默认值部分,但是问题是我已经有一个现有订单,我需要在创建新列时设置默认值。 现在,我知道我可以设置一个硬编码的default value in Liquibase - 但是有没有办法可以根据该表的其他列(对于每个实体)添加默认值。
【问题讨论】:
-
postgresql 上的文档说
default clause(在create table语句上):DEFAULT子句为其列定义所在的列分配默认数据值。该值是任何无变量表达式(不允许对当前表中的其他列进行子查询和交叉引用)... 而且我认为 liquibase 没有任何功能可以以任何方式添加它。 ..
标签: java postgresql migration liquibase