[PERFORM] \d output to a file

2004-12-15 Thread sarlav kumar
Hi All,

I would like to write the output of the \d command on all tables in a database to an output file. There are more than 200 tables in the database. I am aware of \o command to write the output to a file. But,it will be tough to do the \d for each table manually and write the output to a file. Is there a command/ way in which I can achieve this without having to do it for each table?
Any help in this regard would be really appreciated.

Thanks,
Saranya__Do You Yahoo!?Tired of spam?  Yahoo! Mail has the best spam protection around http://mail.yahoo.com 

Re: [PERFORM] \d output to a file

2004-12-15 Thread Grega Bremec
...and on Wed, Dec 15, 2004 at 06:38:22AM -0800, sarlav kumar used the keyboard:
 Hi All,
  
 I would like to write the output of the \d command on all tables in a 
 database to an output file. There are more than 200 tables in the database. I 
 am aware of \o command to write the output to a file. But, it will be tough 
 to do the \d for each table manually and write the output to a file. Is there 
 a command/ way in which I can achieve this without having to do it for each 
 table?
 Any help in this regard would be really appreciated.
  

Hello Sarlav.

You don't say which platform you're doing this on. If it's Windows, someone
else will have to advise you; if it's a UNIX-like platform though, the
following simple shell script should be helpful in achieving what you want:

---CUT-HERE---
#!/bin/bash
if [ -z $1 ]; then
echo Please specify a database to query.
exit 1
fi
DATABASE=$1
MYTABLES=`echo '\t\a\dt' | psql -q ${DATABASE} | cut -f 2 -d '|'`

for table in ${MYTABLES}; do
echo '\d '${table}
done | psql ${DATABASE}
---CUT-HERE---

You can store this script into a file called, for example, describe.sh and
invoke it like so:

$ ./describe.sh mydatabase  description.txt

It should then do what you want.

Should you have additional arguments to specify to psql, such as a host,
a username, a password and so on, it is easy to modify the script to do
that. Just supply those arguments in places where the psql command is
used.

Hope this helped,
-- 
Grega Bremec
gregab at p0f dot net


pgpTPZRwRibTV.pgp
Description: PGP signature