Lists: | pgsql-jdbc |
---|
From: | Nathan McEachen <nathan(at)mceachen(dot)us> |
---|---|
To: | pgsql-jdbc(at)postgresql(dot)org |
Subject: | Creating a database using ant |
Date: | 2005-11-21 04:24:07 |
Message-ID: | 43814BE7.1090507@mceachen.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-jdbc |
Hello,
I am trying to write get ant to drop and create a database. I tried to
use the sql task but recieved the following error:
java.sql.SQLException: ERROR: DROP DATABASE cannot run inside a
transaction block
Here is my ant task:
<sql driver="${db.postgresql.driver}"
userid="${rootuser}"
password="${rootpassword}"
url="${db.postgresql.url}"
onerror="stop"
autocommit="false"
src="${db.postgresql.sqlScripts.dir}/dropDatabase.sql">
<classpath>
<path refid="run.classpath"/>
</classpath>
</sql>
Although autocommit is false, it looks like the sql script is still
executing within a transaction. Does anyone know a workaround?
I also tried runing the dropdb command directly, but (from my
understanding) ant cannot receive user input during execution. As a
result, I can't supply a password to dropdb (at least I don't know how
to do it).
<exec executable="${postgres_bin.dir}/dropdb"
failonerror="true">
<arg value="-U"/>
<arg value="${rootuser}"/>
<arg value="--password"/>
<arg value="mydb"/>
</exec>
Many thanks,
-Nathan
--
In theory, there is no difference between theory and practice. But, in practice, there is.
--Jan L.A. van de Snepscheut
From: | Jan de Visser <jdevisser(at)digitalfairway(dot)com> |
---|---|
To: | pgsql-jdbc(at)postgresql(dot)org |
Subject: | Re: Creating a database using ant |
Date: | 2005-11-21 05:19:11 |
Message-ID: | 200511210019.11559.jdevisser@digitalfairway.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-jdbc |
On Sunday 20 November 2005 23:24, Nathan McEachen wrote:
> Although autocommit is false, it looks like the sql script is still
> executing within a transaction. Does anyone know a workaround?
You got it the wrong way around. autocommit=false gets you a transaction, i.e.
statements are *not* automatically committed when you have that set. You want
autocommit=true. I've done it (creating databases in ant) and it works...
JdV!!
--
--------------------------------------------------------------
Jan de Visser jdevisser(at)digitalfairway(dot)com
Baruk Khazad! Khazad ai-menu!
--------------------------------------------------------------
From: | Oliver Jowett <oliver(at)opencloud(dot)com> |
---|---|
To: | Nathan McEachen <nathan(at)mceachen(dot)us> |
Cc: | pgsql-jdbc(at)postgresql(dot)org |
Subject: | Re: Creating a database using ant |
Date: | 2005-11-21 06:38:28 |
Message-ID: | 43816B64.4080703@opencloud.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-jdbc |
Nathan McEachen wrote:
> java.sql.SQLException: ERROR: DROP DATABASE cannot run inside a
> transaction block
> autocommit="false"
Try with autocommit="true".
-O