sql >> Database >  >> RDS >> PostgreSQL

Gebruik pg_dump resultaat als invoer voor pg_restore

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"


  1. Gegevens uit tabel filteren en groeperen met sleutel/waarde-paren

  2. Bepaalde velden uitsluiten van een SQL SUM-query

  3. Wat is het nut van de initiële catalogus in een SQL Server-verbindingsreeks?

  4. krijg opeenvolgende records in mysql