Estou tentando executar o seguinte comando:
sshpass -p "pass" ssh x@1.2.3.4 "pg_dump -Fc -U foo some_db" | pg_restore --create --dbname=new_db
Eu recebo:
failed: FATAL: database "new_db" does not exist
postgresql
postgresql-9.3
psql
andilabs
fonte
fonte
pg_restore
. A opção -C pode criar apenas um banco de dados cujo nome corresponde ao nome do banco de dados no arquivo de despejo. Para restaurar em um banco de dados arbitrário, você deve executar oCREATE DATABASE new_db;
psql antes de executarpg_restore --dbname=new_db
.docker-compose -p dump_import -f docker/dump_import.yml run --rm be bash -c 'waitforit -host=postgres -port=5432 -timeout=30 && export PGPASSWORD=$DATABASE_PASSWORD && createdb --echo --port=$DATABASE_PORT -host=$DATABASE_HOST --username=$DATABASE_USER $DATABASE_NAME && pg_restore --format=c --dbname=$DATABASE_URL_WITHOUT_QUERY tmp/full.dump && echo "Import done"'
Em resumo, você deseja (limpar existente): (observe o nome do banco de dados
postgres
)ou (criar novo)
ou (criar novo explicitamente)
Veja o que a SCO disse para mais detalhes.
fonte
pg_restore: [archiver] -C and -c are incompatible options
pg_restore -C -d postgres db.dump
pode parecer assustador, mas não faz nada no banco de dados do postgres, apenas o usa para a conexão inicial.Para ser um pouco mais explícito, foi o que fiz que resolveu o problema para mim:
Crie um banco de dados vazio com o nome que você deseja: (no meu caso, o nome de usuário era 'postgres')
Em seguida, será solicitada sua senha. Neste ponto, você estará logado como [nome de usuário]. Digite o seguinte:
Agora saia da sessão e volte à sua sessão normal do terminal.
Restaure o banco de dados do arquivo em que você definiu o nome do banco de dados de destino como o nome do banco de dados que você acabou de criar.
Onde [your_file_path / filename] é o local do arquivo db ou do arquivo de texto que você deseja restaurar.
fonte
-F
opção de, é necessário usar o pg_restore para restaurar o backup, a menos que você use o-F p
que produz um arquivo de texto sem formatação com frases sql.