Re: some unrelated questions

From: Erik Price <eprice(at)ptc(dot)com>
To: Rod Cope <rod(dot)cope(at)ejbsolutions(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: some unrelated questions
Date: 2003-06-11 18:24:57
Message-ID: 3EE773F9.1020609@ptc.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Rod,

Awesome. This sounds a lot better than my <sql> task with the exported
files. I hope it is quick to learn, but I am checking it out right now.

Erik

Rod Cope wrote:
> Erik,
>
> I would highly recommend you check out DbUnit (www.dbunit.org), an Open
> Source extension to JUnit that does exactly what you want. It has
> ready-to-use Ant tasks that will snapshot your database, or just certain
> tables, or even the results of selects into flat or hierarchical XML files.
> You do this one time after you have your test database ready to go.
>
> Then in your unit tests, the database will be automatically restored to the
> state given in the XML files before each test is run, therefore guaranteeing
> that the results of one test does not interfere with the next. You can
> specify if you want tables to be dropped and recreated or just emptied and
> repopulated, etc.
>
> It also gives you a framework to easily (in one line) compare live result
> sets against saved results to see if you broke something. It supports
> result set ordering to make sure you're comparing apples to apples.
>
> If you use multiple databases, it's even better because you can snapshot the
> data from one and use it to re-populate another. We use PostgreSQL, MySQL,
> and others without any problem.
>
> We use DbUnit in all our database-enabled sample applications in
> Out-of-the-Box. It's a must-have for database development work in Java.
>
> Hope that helps,
> Rod
>
> Rod Cope
> EJB Solutions, Inc.
> rod(dot)cope(at)ejbsolutions(dot)com
>
>
> -----Original Message-----
> From: pgsql-general-owner(at)postgresql(dot)org
> [mailto:pgsql-general-owner(at)postgresql(dot)org] On Behalf Of Erik Price
> Sent: Wednesday, June 11, 2003 11:54 AM
> To: pgsql-general(at)postgresql(dot)org
> Subject: [GENERAL] some unrelated questions
>
> Hi,
>
> I am writing a Java app and currently am using postgres with it. I have
> a unit test suite that runs frequently and inserts new data to test the
> code. In order to be able to re-run this suite indefinitely, I have
> written some SQL commands into my build script to DROP the database and
> then CREATE the database again, repopulating the tables from known data
> exported to a file, so that the tests always run with the database in a
> known state.
>
>
> I have two questions:
>
> 1. Are there any hazards in dropping a database and then creating it
> again, over and over? This seemed like the cleanest way to remove all
> of the data, including the sequences, but I am wondering if there is a
> danger that the 'current OID' might be getting artificially pushed
> toward its upper limit or something.
>
>
> 2. The [Ant] build script has no problem performing the necessary SQL
> inserts when I use a certain file that I have handwritten that contains
> nothing but CREATE TABLE and INSERT statements. Fine. However, if I
> need to make some change to the database, this means I also have to
> update the handwritten file (for instance, if I add new test data to the
> database or change the structure of a table). This seems foolish, when
> I could simply export the database schema and data to a file and then
> use this file.
>
> However, the format used by pg_dump consists of COPY statements, not
> INSERT statements. The format also assumes that the commands are being
> run from the shell, as there are certain escapes and references to
> stdin. My build script does -not- run from a subshell, rather it is
> executed via JDBC through the Ant <sql> task, so the SQL parser chokes
> when it encounters some shell-specific escapes in the file. Is there a
> way to run pg_dump so that the exported data resembles MySQL's mysqldump
> data (entirely CREATE TABLE and INSERT statements) instead of the COPY
> statements?
>
>
>
> Thank you so much if you can advise me.
>
>
> Erik
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 6: Have you searched our list archives?
>
> http://archives.postgresql.org
>
>
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 2: you can get off all lists at once with the unregister command
> (send "unregister YourEmailAddressHere" to majordomo(at)postgresql(dot)org)
>

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Bruno Wolff III 2003-06-11 18:30:05 Re: Index not being used in MAX function (7.2.3)
Previous Message Lynna Landstreet 2003-06-11 18:21:17 Re: Question about serial vs. int datatypes