Liquibase 3.2.2使用Sequence的LoadData导致NULL值

时间:2018-12-21 20:25:58

标签: liquibase

我正在尝试为Liquibase工作获取loadData。 我正在使用Dropwizard 1.3.5和Postgres作为数据库。

我的LoadData看起来像:

<loadData catalogName="postgres"
            encoding="UTF-8"
            file="db/data/useraccount.csv"
            schemaName="public"
            tableName="useraccount">
        <column name="id" type="SEQUENCE" defaultValue="useraccount_id_seq"/>

我的csv如下:

  

“ id”,“ account_id”,“用户名”,“电子邮件”   0,“ df98suf8sddffsdf8”,“ myuser”,“ my@user.com”

我还尝试使用不带引号的'1'或'NULL'代替'0'(当然不带引号)。

在此上运行迁移时,我得到一个异常,该异常表明对于“ id”列给出了NULL,但是此列具有非null约束。

因此,它没有使用给定的序列,而是将值转换为NULL。

当将列定义更改为type =“ NUMERIC”且不使用'valueComputed'时,它将正确插入id = 0的行,但不使用顺序。

<loadData catalogName="postgres"
            encoding="UTF-8"
            file="db/data/useraccount.csv"
            schemaName="public"
            tableName="useraccount">
        <column name="id" type="NUMERIC"/>

将定义更改为:

<loadData catalogName="postgres"
            encoding="UTF-8"
            file="db/data/useraccount.csv"
            schemaName="public"
            tableName="useraccount">
        <column name="id" type="SEQUENCE" />

然后输入csv:

  

“ id”,“ account_id”,“用户名”,“电子邮件”   useraccount_id_seq,“ df98suf8sddffsdf8”,“ myuser”,“ my@user.com”

它将再次插入NULL作为id列。

也使用“ useraccount_id_seq”或“ useraccount_id_seq”无济于事。

我从此更改中获取了代码: https://liquibase.jira.com/browse/CORE-2540

我不知道我在做什么错。

任何帮助将不胜感激。

0 个答案:

没有答案