Điều sau kết thúc:
pg_dump --schema-only --format c dbName | \
pg_restore --schema-only --clean --dbname=dbNameTest
Ngoại trừ nó không hoạt động nếu dbNameTest
chưa tồn tại. Phần sau thực hiện công việc (mặc dù nó phàn nàn nếu dbNameTest
đã tồn tại. Tôi có thể sống với điều đó)
createdb dbNameTest
pg_dump --schema-only --format c dbName | \
pg_restore --schema-only --clean --dbname=dbNameTest
Oneliner với các tùy chọn ngắn sẽ là:
createdb dbNameTest ; pg_dump -s -F c dbName | pg_restore -s -c -d dbNameTest
Tập lệnh sh pg_copy_schema
sẽ đi một cái gì đó như:
#!/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"