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


Re: [PERFORM] \d output to a file

2004-12-15 Thread Gary Cowell
On Wed, 15 Dec 2004 06:38:22 -0800 (PST), sarlav kumar
<[EMAIL PROTECTED]> wrote:
> 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
> 
> 

Try something like:

psql -c "\d *" >listing.txt

---(end of broadcast)---
TIP 6: Have you searched our list archives?

   http://archives.postgresql.org


[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