Tag: postgres

  • Restaurando um arquivo SQL num Postgresql dockerizado

    Fotos grátis de Namibia

    Ao desenvolver uma aplicação com um banco Postgresql em um container, talvez, você precise restaurar um arquivo SQL ou um dump de um banco já existente. É algo simples e aqui está uma sugestão de passo a passo:

    Crie o container

    Primeiro, crie o container com o Postgresql:

    docker run -e POSTGRES_PASSWORD=<senha_de_acesso/> postgres

    Inspecione o container

    docker inspect <container>

    Na saída do comando docker inspect, procure as informações sobre o volume do container. Abaixo segue uma saída de exemplo:

    {
        "Type": "volume",
        "Name": "<nome_do_seu_container>",
        "Source": "/var/lib/docker/volumes/<nome_do_seu_container>/_data",
        "Destination": "/<algum_diretorio>",
        "Driver": "local",
        "Mode": "rw",
        "RW": true,
        "Propagation": ""
    },

    Copie o arquivo SQL

    Usando a propriedade source do json acima, copie o arquivo SQL para o volume do container.

    cp banco.sql /var/lib/docker/volumes/<nome_do_seu_container>/_data

    Restaure o banco

    Para restaurar o banco você precisa acessar o container via shell:

    docker exec -it <seu_container> bash

    Uma vez no container, você pode usar a ferramenta apropriada para restaurar seu banco dependendo do tipo de restore: psql ou pgrestore, por exemplo.

    psql -U <usuario> -W -f <path_para_seu_arquivo/banco.sql> banco_de_dados

    Pronto :-) Banco restaurado.

    Sobre a localização do arquivo SQL

    Se você enfrentar alguma dificuldade em encontrar o arquivo, uma ideia é procurar em:

    /var/lib/postgresql/data

    Referência:

    Encontre mais detalhes em https://simkimsia.com/how-to-restore-database-dumps-for-postgres-in-docker-container/