Het volgende komt in de buurt:
pg_dump --schema-only --format c dbName | \
pg_restore --schema-only --clean --dbname=dbNameTest
Behalve dat het niet werkt als de dbNameTest bestaat nog niet. Het volgende doet het werk (hoewel het klaagt als de dbNameTest bestaat al. Daar kan ik mee leven)
createdb dbNameTest
pg_dump --schema-only --format c dbName | \
pg_restore --schema-only --clean --dbname=dbNameTest
Een oneliner met korte opties zou zijn:
createdb dbNameTest ; pg_dump -s -F c dbName | pg_restore -s -c -d dbNameTest
A sh-script pg_copy_schema zou ongeveer gaan als:
#!/bin/sh
if [ -z "$2" ] ; then echo "Usage: `basename $0` original-db new-db" ; exit 1 ; fi
echo "Copying schema of $1 to $2"
createdb "$2" 2> /dev/null
pg_dump --schema-only --format c "$1" | pg_restore --schema-only --clean --dbname="$2"