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"