使用 Liquibase 添加创建日期 - 与数据库无关
Using Liquibase to Add a Create Date - Database Agnostic
我正在使用 Liquibase 删除特定行(如果存在)。
为了可能的回滚,我想重新插入该行。其中一列是 CREATEDATE,它基本上是当前时间。
由于业务原因,我不能假定此运行所针对的数据库是 Oracle 或 mySQL 数据库。
有没有一种方法可以通过使用服务器时间或同时包含 oracle 和 mySQL 值来插入当前日期?
目前我有
<!-- NOW = CREATE_DATE FOR ROLLBACK -->
<property name="now" value="sysdate" dbms="oracle"/>
<property name="now" value="now()" dbms="mysql"/>
并在回滚中
<column name="CREATEDATE" valueDate="${now}" />
这会始终默认为 mySQL 时间吗?它会根据正在使用的 DBMS 给我一个值吗?
理想情况下,我宁愿使用服务器时间。
Liquibase 应将 valueDate 标记中的字符串 "current_datetime" 转换为特定于数据库的当前时间函数,无需任何额外配置。
但是,Current_datetime 的工作原理与您当前的设置基本相同。在这两种情况下,保存的 date/time 将是服务器时间而不是客户端时间。
我正在使用 Liquibase 删除特定行(如果存在)。
为了可能的回滚,我想重新插入该行。其中一列是 CREATEDATE,它基本上是当前时间。
由于业务原因,我不能假定此运行所针对的数据库是 Oracle 或 mySQL 数据库。
有没有一种方法可以通过使用服务器时间或同时包含 oracle 和 mySQL 值来插入当前日期?
目前我有
<!-- NOW = CREATE_DATE FOR ROLLBACK -->
<property name="now" value="sysdate" dbms="oracle"/>
<property name="now" value="now()" dbms="mysql"/>
并在回滚中
<column name="CREATEDATE" valueDate="${now}" />
这会始终默认为 mySQL 时间吗?它会根据正在使用的 DBMS 给我一个值吗?
理想情况下,我宁愿使用服务器时间。
Liquibase 应将 valueDate 标记中的字符串 "current_datetime" 转换为特定于数据库的当前时间函数,无需任何额外配置。
但是,Current_datetime 的工作原理与您当前的设置基本相同。在这两种情况下,保存的 date/time 将是服务器时间而不是客户端时间。