Hub*_*ubi 4 database oracle rdbms database-migration liquibase
我想用chars中定义的大小独立定义一个VARCHAR2列数据库.我需要至少支持Oracle和PostgreSQL.我使用UTF8编码,所以我没有机会使用字节定义.
我需要在Oracle中使用VARCHAR2(255 CHAR)定义,但CHAR修饰符在其他dbms(如PG)下无效.在不向脚本添加CHAR修饰符的情况下,生成的Oracle定义使用字节作为length:VARCHAR2(255).
什么是正确的定义?
在liquibase中没有一种内置方法可以将数据类型定义为"varchar 255,char type",并在oracle上的postgresql和VARCHAR2(255 CHAR)上输出VARCHAR(255).
Liquibase被设计为可扩展(liquibase.org/extensions),您应该能够覆盖changelog中字符串"VARCHAR(255)"如何转换为特定于数据库的类型,但它需要一些Java编码.
或者,changelog参数允许您根据数据库动态地将CHAR添加到定义中.如果您添加<property name="varcharUnit" value="CHAR" dbms="oracle"/>到更改日志的顶部,那么您可以使用您的更改日志文件中的任何位置type="VARCHAR(255 ${varcharUnit})",它将在oracle和VARCHAR(255)上评估为"VARCHAR(255 CHAR)".它更冗长,你需要记住总是添加变量与扩展方法相比,但它更直接.
| 归档时间: |
|
| 查看次数: |
4897 次 |
| 最近记录: |