sql >> Database teknologi >  >> RDS >> PostgreSQL

Brug pg_dump resultat som input til pg_restore

Følgende kommer tæt på:

pg_dump --schema-only --format c dbName | \
  pg_restore --schema-only --clean --dbname=dbNameTest

Bortset fra at det ikke virker, hvis dbNameTest eksisterer ikke endnu. Følgende klarer opgaven (selvom det klager, hvis dbNameTest eksisterer allerede. Det kan jeg leve med)

createdb dbNameTest
pg_dump --schema-only --format c dbName | \
  pg_restore --schema-only --clean --dbname=dbNameTest

En oneliner med korte muligheder ville være:

createdb dbNameTest ; pg_dump -s -F c dbName | pg_restore -s -c -d dbNameTest

Et sh-script pg_copy_schema ville gå noget som:

#!/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. Sådan bestemmes den autogenererede primærnøgle, der bruges som fremmednøgle til en anden tabel

  2. Sådan får du UUID genereret af MySQL til en C#-variabel

  3. For at finde den næste arbejdsdag

  4. Skriv Pandas DataFrame ind i MySQL-databasen