1

我们使用 Ant 在我们的测试环境中创建一个数据库,任务如下

<execute-sql-script
    driver=org.postgresql.Driver
    url=jdbc:postgresql://127.0.0.1:5432/lakshmi_testapp?searchpath=lakshmi_stdcmp
    user=lakshmi_stdcmp
    password=********
    classpathid=execute-sql.classpath
    sqlfile=/var/lib/jenkins/jobs/Lakshmi-Testapp-PostgreSQL/workspace/target/lakshmi-std-cmp-opu.sql
/>

示例文件:

create table PersistentOrder (
    dbId int8 not null,
    orderActionsBinary oid,
    orderActionsText text,
    orderIssuerId varchar(255),
    orderIssuerName varchar(255),
    orderType varchar(255),
    returnType int4,
    uuid varchar(255),
    primary key (dbId)
);

create table REVINFO (
    REV int4 not null,
    REVTSTMP int8,
    primary key (REV)
);

如果我尝试使用 psql 或 pgAdmin 执行文件,我没有错误,但是当通过 Ant 执行时,我得到:

[sql] Executing resource: /var/lib/jenkins/jobs/Lakshmi-Testapp-PostgreSQL/workspace/target/lakshmi-std-cmp-opu.sql
[sql] Failed to execute:   create table if not exists PersistentOrder ( dbId int8 not null, orderActionsBinary oid, orderActionsText text, orderIssuerId varchar(255), orderIssuerName varchar(255), orderType varchar(255), returnType int4, uuid varchar(255), primary key (dbId) )
[sql] org.postgresql.util.PSQLException: ERROR: syntax error at or near "not"
[sql]   Position: 19
[sql] Failed to execute:   create table if not exists REVINFO ( REV int4 not null, REVTSTMP int8, primary key (REV) )
[sql] org.postgresql.util.PSQLException: ERROR: syntax error at or near "not"
[sql]   Position: 19
[sql] Failed to execute:   drop sequence if exists hibernate_sequence
[sql] org.postgresql.util.PSQLException: ERROR: current transaction is aborted, commands ignored until end of transaction block
[sql] Failed to execute:  create sequence hibernate_sequence;
[sql] org.postgresql.util.PSQLException: ERROR: current transaction is aborted, commands ignored until end of transaction block
[sql] 0 of 4 SQL statements executed successfully

有什么提示吗?

4

1 回答 1

3

if not exists

came with version 9.1. What version do you use?

于 2012-06-29T09:42:05.747 回答