liquibase 自动为多数据库生成 UUID
liquibase auto generate UUID for multi database
我正在尝试使用 liquibase 自动生成 UUID 作为主键。这个 post 为 postgresql 提供了一些想法,我正在尝试使用它。
<property name="uuid_type" value="uuid" dbms="postgresql"/>
<property name="uuid_function" value="uid.uuid_generate_v4()" dbms="postgresql"/>
<column name="id" type="${uuid_type}" defaultValueComputed="${uuid_function}">
<constraints nullable="false" unique="true" />
</column>
但是,我需要一个解决方案来单独使用 H2 来完成这项工作。我看到有人建议在单独使用 h2 时使用以下内容,但它不能在列定义中共享 defaultValueComputed(我不确定 h2 是否支持可以分配给 defaultValueComputed 的函数)
<property name="uuid_type" value="varchar(36)" dbms="h2"/>
有没有办法在 liquibase 中同时支持 Postgres 和 H2
你的部分问题是问你是否可以在 H2 中生成 uuid 对吗?我不是专家,但看起来你可以:
http://www.h2database.com/html/functions.html#random_uuid
其次,您询问是否可以在 liquibase 中执行此操作,类似于针对 Postgres 的操作方式:
<property name="uuid_type" value="uuid" dbms="postgresql"/>
<property name="uuid_function" value="uid.uuid_generate_v4()" dbms="postgresql"/>
<column name="id" type="${uuid_type}" defaultValueComputed="${uuid_function}">
<constraints nullable="false" unique="true" />
</column>
你试过了吗:
<property name="uuid_type" value="uuid" dbms="h2"/>
<property name="uuid_function" value="RANDOM_UUID()" dbms="h2"/>
<column name="id" type="${uuid_type}" defaultValueComputed="${uuid_function}">
<constraints nullable="false" unique="true" />
</column>
我正在尝试使用 liquibase 自动生成 UUID 作为主键。这个 post 为 postgresql 提供了一些想法,我正在尝试使用它。
<property name="uuid_type" value="uuid" dbms="postgresql"/>
<property name="uuid_function" value="uid.uuid_generate_v4()" dbms="postgresql"/>
<column name="id" type="${uuid_type}" defaultValueComputed="${uuid_function}">
<constraints nullable="false" unique="true" />
</column>
但是,我需要一个解决方案来单独使用 H2 来完成这项工作。我看到有人建议在单独使用 h2 时使用以下内容,但它不能在列定义中共享 defaultValueComputed(我不确定 h2 是否支持可以分配给 defaultValueComputed 的函数)
<property name="uuid_type" value="varchar(36)" dbms="h2"/>
有没有办法在 liquibase 中同时支持 Postgres 和 H2
你的部分问题是问你是否可以在 H2 中生成 uuid 对吗?我不是专家,但看起来你可以: http://www.h2database.com/html/functions.html#random_uuid
其次,您询问是否可以在 liquibase 中执行此操作,类似于针对 Postgres 的操作方式:
<property name="uuid_type" value="uuid" dbms="postgresql"/>
<property name="uuid_function" value="uid.uuid_generate_v4()" dbms="postgresql"/>
<column name="id" type="${uuid_type}" defaultValueComputed="${uuid_function}">
<constraints nullable="false" unique="true" />
</column>
你试过了吗:
<property name="uuid_type" value="uuid" dbms="h2"/>
<property name="uuid_function" value="RANDOM_UUID()" dbms="h2"/>
<column name="id" type="${uuid_type}" defaultValueComputed="${uuid_function}">
<constraints nullable="false" unique="true" />
</column>