在 Liquibase 中定义具有默认值的列

Define a column with a default value in Liquibase

我正在尝试使用 liquibase 为 Postgres 中的列调用 current_timestamp 函数,但我不知道该怎么做。我可以在 SQL 标签内完成吗?如果有人能帮助我提出更好的主意,我将不胜感激。

您需要做的是使用变更日志参数并定义一个 "now" 或 "current_timestamp" 参数,每个数据库类型都会替换该参数。

<databaseChangeLog> 的顶部,通常就在 <changeset> 之外,添加 属性 的每个数据库定义,例如:

  <property name="now" value="now()" dbms="postgresql"/>

然后在您的变更集中使用

  <column name="Join_date" defaultValueFunction="${now}"/>

注意 defaultValueFunction 的使用,它会让 liquibase 知道不要将其解析为日期或引用它。

这也很有效:

<column name="actiondate" type="timestamp with time zone" defaultValueComputed="current_timestamp"/>