我有一个使用 liquibase 定义的 PostgreSQL 模式。我使用了“SERIAL”数据类型。对于这些数据类型,数据库会在其 pg_catalog 表中创建一个具有特定名称的序列。现在我正在移植我的应用程序以支持 Oracle。我添加了一个单独的更改集来创建序列。PostgreSQL创建的序列名很大,Oracle不允许。我需要修改我的模式定义,以便两者都具有相同的序列名称。这是因为我使用的是 hibernate 并且需要在各自的 hbm 文件中指定相同的内容。
我能想到的替代方法是为 PostgreSQL 和 Oracle 设置不同的更改集。对于 PostgreSQL,它会创建表标签来生成类似于此处提到的查询 [http://www.postgresql.org/docs/8.1/static/datatype.html#DATATYPE-SERIAL]。然后是 Oracle 的另一个更改集,用于创建表和关联的序列。
我有兴趣知道这是否是实现这一目标的正确且唯一的方法。