[英]Liquibase loadData doesn't use my load my CSV but not error
我正在尝试使用 liquibase 从 CSV 加载数据,我的问题是脚本运行并且没有错误,但我的表中没有数据,这是我的配置
<?xml version="1.0" encoding="UTF-8"?>
<databaseChangeLog
xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.8.xsd">
<changeSet id="1" author="dev">
<createTable tableName="products">
<column name="code" type="varchar(3)">
<constraints primaryKey="true"/>
</column>
<column name="name" type="text"/>
</createTable>
</changeSet>
<changeSet id="2" author="dev">
<loadData tableName="products"
file="data_products.csv"
separator=";"
relativeToChangelogFile="true"/>
</changeSet>
</databaseChangeLog>
在我的文件 data_products.csv 我有这样的事情
code;name
000;product1
001;product2
这是我运行项目时的控制台日志:
2021-01-15 11:21:18.986 INFO 9540 --- [main] liquibase.changelog: Creating database history table with name: public.databasechangelog
2021-01-15 11:21:18.993 INFO 9540 --- [main] liquibase.changelog: Reading from public.databasechangelog
2021-01-15 11:21:19.047 INFO 9540 --- [main] liquibase.changelog: Table products created
2021-01-15 11:21:19.048 INFO 9540 --- [main] liquibase.changelog: ChangeSet liquibase/sql/1.0.0/init_db.xml::1::dev ran successfully in 8ms
2021-01-15 11:21:19.156 INFO 9540 --- [main] liquibase.changelog: Data loaded from data_products.csv into products
2021-01-15 11:21:19.156 INFO 9540 --- [main] liquibase.changelog: ChangeSet liquibase/sql/1.0.0/init_db.xml::2::dev ran successfully in 104ms
2021-01-15 11:21:19.160 INFO 9540 --- [main] liquibase.lockservice: Successfully released change log lock
我不知道我的配置有什么问题,因为日志说数据已加载,但是当我在表中执行 select 时,里面什么都没有
我确实找到了解决方案,问题在于列名中的类型,
如果您将文本用于具有 liquibase 的类型,它将在数据库中作为 CLOB 执行,然后它不会加载数据,
我刚变
<column name="name" type="text"/>
至
<column name="name" type="varchar"/>
没有尺寸,它工作!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.