sli*_*fty 8 migration liquibase
我最近升级Liquibase以3.6.2从3.4.2.
将种子数据从CSV加载到文本字段现在会导致CLOB资源错误.之前它只是将文本作为值插入.
我正在使用Liquibase来管理我的数据迁移.
我有一个带有code和description列的表. description是类型的TEXT.
<changeSet author="" id="create-table-degrees">
<createTable tableName="degrees">
<column name="code"
type="varchar(2)">
<constraints primaryKey="true"/>
</column>
<column name="description"
type="text">
<constraints unique="true"/>
</column>
</createTable>
<rollback>
<dropTable tableName="degrees"/>
</rollback>
</changeSet>
Run Code Online (Sandbox Code Playgroud)
我在CSV中有种子数据:
code,description
"D1","MASTERS"
"D2","DOCTORATE"
Run Code Online (Sandbox Code Playgroud)
我用它加载它loadData:
<changeSet author="" id="seed-degrees">
<loadData file="seeds/degrees.csv"
tableName="degrees" />
</changeSet>
Run Code Online (Sandbox Code Playgroud)
String
有没有办法让Liquibase不将种子值解释为文件路径而不是字符串,或者我是否需要像3.6.2在loadData中那样手动定义列类型.
例如,我想避免将旧的changeSet修改为:
<changeSet author="" id="seed-degrees">
<loadData file="seeds/degrees.csv"
tableName="roles">
<column name="description" type="string" />
</loadData>
</changeSet>
Run Code Online (Sandbox Code Playgroud)
小智 6
CORE-3287 中列出的解决方法:Anver S 2018 年 12 月 3 日下午 3:07
添加原始 stackoverflow 帖子中定义的显式列类型定义时
Run Code Online (Sandbox Code Playgroud)<column name="description" type="string" />做到了这一点 - 对我来说,它实际上需要更新已经应用的变更集,理想情况下我会尽量避免。