Thread: Postgres backup

Postgres backup

From
"pd"
Date:
guys,

i have a java web app with a postgres backend. now i want to implement
a db database functionality from within my web app. now i have got
this so far,

String[] args = {"\"C:\\Program
Files\\PostgreSQL\\8.1\\bin\\pg_dump\"", " -i", " -h", " localhost", "
-p", " 5432", " -U", " postgres", " -F", " t", " -b", " -v", " -f", "
\"C:\\Test.backup\"", " TESTDB"};

String result = "";
if (args.length > 0) {
       result = args[0];    // start with the first element
       for (int i=1; i<args.length; i++) {
       result = result + args[i];
      }
}

Process p = Runtime.getRuntime().exec(result);

Now on executing this i am getting a file called Test.backup, but its
0KB compeletely empty. can somebody tell me what i am doing wrong and
how can i fix it. somebody also told me that this is not the best way
of doing this, and i was wondering is there a better way of
implementhing this.

Thanks.


Re: Postgres backup

From
Martijn van Oosterhout
Date:
On Sun, Oct 01, 2006 at 09:20:12PM -0700, pd wrote:
> guys,
>
> i have a java web app with a postgres backend. now i want to implement
> a db database functionality from within my web app. now i have got
> this so far,
>
> String[] args = {"\"C:\\Program
> Files\\PostgreSQL\\8.1\\bin\\pg_dump\"", " -i", " -h", " localhost", "
> -p", " 5432", " -U", " postgres", " -F", " t", " -b", " -v", " -f", "
> \"C:\\Test.backup\"", " TESTDB"};

Do you really have space in those strings? Because that's not going to
work.

Secondly, work out where your STDERR is going, because any error
messages from pg_dump will have gone there...

Have a nice day,
--
Martijn van Oosterhout   <kleptog@svana.org>   http://svana.org/kleptog/
> From each according to his ability. To each according to his ability to litigate.

Attachment

Re: Postgres backup

From
"Damian C"
Date:
On 10/3/06, Martijn van Oosterhout <kleptog@svana.org> wrote:
> On Sun, Oct 01, 2006 at 09:20:12PM -0700, pd wrote:
> > guys,
> >
> > i have a java web app with a postgres backend. now i want to implement
> > a db database functionality from within my web app. now i have got
> > this so far,
> >
> > String[] args = {"\"C:\\Program
> > Files\\PostgreSQL\\8.1\\bin\\pg_dump\"", " -i", " -h", " localhost", "
> > -p", " 5432", " -U", " postgres", " -F", " t", " -b", " -v", " -f", "
> > \"C:\\Test.backup\"", " TESTDB"};
>

> Secondly, work out where your STDERR is going, because any error
> messages from pg_dump will have gone there...

For some useful info on draining STDERR (and seeing error codes etc)
from with java see
http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html
-Damian