PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Използвайте резултата от pg_dump като вход за pg_restore

Следното е близо:

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

Освен че не работи, ако dbNameTest все още не съществува. Следното върши работата (въпреки че се оплаква, ако dbNameTest вече съществува. Мога да живея с това)

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

Един ред с кратки опции би бил:

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

sh скрипт pg_copy_schema ще изглежда нещо като:

#!/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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да създам именувани дялове на прозорци (псевдоними) в PostgreSQL?

  2. Как да актуализирам автоматично времеви печат в PostgreSQL

  3. по подразбиране за колона xxxx не може да се преобразува автоматично за тип boolean в Postgres DB

  4. Създаване на оптимална среда за PostgreSQL

  5. ГРЕШКА:няма уникално ограничение, съответстващо на дадени ключове за реферираната лента на таблицата