我有一个{strong> Liquibase 的<loadData .../>
格式的CSV文件。
有一些空格可以使外观漂亮。
但是由于这些空格,我的数据库中的数据错误。
如何解决?是否存在任何“标志”或强迫 Liquibase 修剪空白的东西?
我试图使它看起来像下一个
id;name ;surname
1 ;test123;test123
2 ;test1 ;test123
3 ;"test" ;test123
无论如何,我的数据库包含test1__
和test"_
,其中_
是空格。
quotchar="""
也无济于事(按预期,这是多余的一行)。
顺便说一句,id列定义为数字-可以(1、2、3等,没有错误)。
答案 0 :(得分:1)
查看此Jira issue。
引用Nathan Voxland:
因为我认为保留默认值作为修整可能很有意义 这样会减少意外。但是,我添加了一个全局 配置标记,可让您更改默认设置。
您可以通过liquibase.trimCsvWhitespace = false进行设置 系统属性或通过使用 LiquibaseConfiguration.getInstance()。getProperty(GlobalConfiguration.class, GlobalConfiguration.CSV_TRIM_WHITESPACE).setValue()API调用。
尝试添加liquibase.trimCsvWhitespace=false
属性。
在进一步的检查中,似乎只是3.5.0中的更改。一世 通常尝试保持向后兼容性,即使 意外的行为,但认为它已随3.4.0更改,因此 将其更改回保留空白将破坏其他人 现在期望它会被修剪。
但是,由于仅在3.5.0中确实发生了意外更改,因此 绝对是一个错误,所以我只是将逻辑重新设置为保留 空格。
根据Jira票证,此错误已在liquibase版本3.5.1
中修复,但实际上似乎不是。