Estamos trocando de host e o antigo forneceu um dump SQL do banco de dados PostgreSQL do nosso site.
Agora, estou tentando configurar isso em um servidor WAMP local para testar isso.
O único problema é que não tenho idéia de como importar esse banco de dados no PostgreSQL 9 que configurei.
Eu tentei o pgAdmin III, mas não consigo encontrar uma função 'import'. Então, eu apenas abri o editor SQL e colei o conteúdo do dump lá e o executei, ele cria as tabelas, mas continua me dando erros quando tenta colocar os dados nele.
ERROR: syntax error at or near "t"
LINE 474: t 2011-05-24 16:45:01.768633 2011-05-24 16:45:01.768633 view...
The lines:
COPY tb_abilities (active, creation, modtime, id, lang, title, description) FROM stdin;
t 2011-05-24 16:45:01.768633 2011-05-24 16:45:01.768633 view nl ...
Eu também tentei fazer isso com o prompt de comando, mas não consigo encontrar o comando necessário.
Se eu fizer
psql mydatabase < C:/database/db-backup.sql;
Eu recebo o erro
ERROR: syntax error at or near "psql"
LINE 1: psql mydatabase < C:/database/db-backu...
^
Qual é a melhor maneira de importar o banco de dados?
database
postgresql
deslumbrar
fonte
fonte
ERROR: syntax error at or near "t"
. Aconteceu que eu havia importado apenas um esquema parcial e, portanto, umaCREATE TABLE
declaração anterior no script falhou. Veja a saída completa da importação para encontrá-la.Respostas:
Esse é o comando que você está procurando.
Cuidado:
databasename
deve ser criado antes da importação. Veja o Capítulo 23 do PostgreSQL Docs. Backup e restauração .fonte
-f
switch (ou--file
) tambémAqui está o comando que você está procurando.
fonte
pg_restore -h hostname -d dbname -U username filename.sql
Eu acredito que você deseja executar no psql:
fonte
Isso funcionou para mim:
fonte
Não tenho certeza se isso funciona para a situação do OP, mas descobri que executar o seguinte comando no console interativo era a solução mais flexível para mim:
Apenas verifique se você já está conectado ao banco de dados correto. Este comando executa todos os comandos SQL no arquivo especificado.
fonte
psql
linha de comando. Obrigado!Funciona muito bem, na linha de comando, todos os argumentos são necessários, -W é para senha
fonte
Apenas por diversão, se o seu despejo estiver compactado, você poderá fazer algo como
gunzip -c filename.gz | psql dbname
Como Jacob mencionou, os documentos do PostgreSQL descrevem tudo isso muito bem.
fonte
Eu uso:
Espero que isso ajude alguém.
fonte
Você pode fazer isso no pgadmin3. Solte os esquemas que seu dump contém. Em seguida, clique com o botão direito do mouse no banco de dados e escolha Restaurar. Em seguida, você pode procurar o arquivo de despejo.
fonte
verifique se o banco de dados para o qual você deseja importar foi criado, então você pode importar o dump com
Se você deseja substituir o banco de dados inteiro, primeiro largue o banco de dados
e depois recriá-lo com
fonte
Notei que muitos exemplos são complicados demais para o host local, onde existem apenas usuários do postgres sem senha em muitos casos:
fonte
Tentei muitas soluções diferentes para restaurar meu backup do postgres. Encontrei permissão negada para problemas no MacOS, nenhuma solução parecia funcionar.
Aqui está como eu consegui funcionar:
O Postgres vem com o Pgadmin4. Se você usa o macOS, pode pressionar
CMD
+SPACE
e digitarpgadmin4
para executá-lo. Isso abrirá uma guia do navegador no chrome.Etapas para obter o backup / restauração do pgadmin4 +
1. Crie o backup
Faça isso clicando com o botão direito do mouse no banco de dados -> "backup"
2. Dê um nome ao arquivo.
Like
test12345
. Clique em backup. Isso cria um despejo de arquivo binário, não está em um.sql
formato3. Veja onde ele baixou
Deve haver um pop-up na parte inferior direita da tela. Clique na página "mais detalhes" para ver onde o seu backup foi baixado para
4. Encontre o local do arquivo baixado
Nesse caso, é
/users/vincenttang
5. Restaure o backup do pgadmin
Supondo que você executou as etapas 1 a 4 corretamente, você terá um arquivo binário de restauração. Pode chegar um momento em que seu colega de trabalho deseje usar o arquivo de restauração na máquina local. Essa pessoa foi ao pgadmin e restaurou
Faça isso clicando com o botão direito do mouse no banco de dados -> "restore"
6. Selecione um localizador de arquivos
Certifique-se de selecionar o local do arquivo manualmente, NÃO arraste e solte um arquivo nos campos do remetente no pgadmin. Porque você terá permissões de erro. Em vez disso, encontre o arquivo que você acabou de criar:
7. Encontre o arquivo
Pode ser necessário alterar o filtro na parte inferior direita para "Todos os arquivos". Localize o arquivo depois, a partir da etapa 4. Agora pressione o botão "Selecionar" abaixo para confirmar
8. Restaure o arquivo
Você verá esta página novamente, com o local do arquivo selecionado. Vá em frente e restaure
9. Sucesso
Se tudo estiver bom, o canto inferior direito deve exibir um indicador mostrando uma restauração bem-sucedida. Você pode navegar até suas tabelas para ver se os dados foram restaurados em cada tabela.
10. Se não foi bem sucedido:
Se a etapa 9 falhar, tente excluir seu esquema público antigo no banco de dados. Vá para "Ferramenta de consulta"
Execute este bloco de código:
Agora tente as etapas 5 a 9 novamente, deve funcionar
Sumário
Foi assim que tive que fazer backup / restaurar meu backup no Postgres, quando tive problemas de permissão de erro e não consegui efetuar login como superusuário. Ou defina credenciais para leitura / gravação usando
chmod
para pastas. Esse fluxo de trabalho funciona para um padrão de despejo de arquivo binário "Custom" do pgadmin. Suponho que.sql
seja da mesma maneira, mas ainda não testei issofonte