gpt4 book ai didi

migration - Liquibase loadData 作为字符串,而不是 CLOB 资源

转载 作者:行者123 更新时间:2023-12-03 15:14:23 27 4
gpt4 key购买 nike

问题

我最近将 Liquibase 升级到 3.6.2来自 3.4.2 .

现在将 CSV 中的种子数据加载到文本字段中会导致 CLOB 资源错误。之前它只会将文本作为值插入。

设置

我正在使用 Liquibase 来管理我的数据迁移。

我有一张 table ,上面有 codedescription柱子。 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>

我在 CSV 中有种子数据:

code,description
"D1","MASTERS"
"D2","DOCTORATE"

我使用 loadData 加载它:

<changeSet author="" id="seed-degrees">
<loadData file="seeds/degrees.csv"
tableName="degrees" />
</changeSet>

错误

Unexpected error running Liquibase: CLOB resource not found: MASTERS



问题

有没有办法阻止 Liquibase 将种子值解释为文件路径而不是字符串,或者我是否需要手动将列类型定义为 String在加载数据中。

例如我想避免将旧的 changeSet 修改为:

<changeSet author="" id="seed-degrees">
<loadData file="seeds/degrees.csv"
tableName="roles">
<column name="description" type="string" />
</loadData>
</changeSet>

最佳答案

The workaround listed in CORE-3287: Anver S December 3, 2018, 3:07 PM

While adding an explicit column type definition as defined in original stackoverflow post

<column name="description" type="string" />

does the trick - for me it effectively requires to update already applied changesets which ideally I'd try to avoid.

关于migration - Liquibase loadData 作为字符串,而不是 CLOB 资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51469751/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com