2.9 KiB
Restore Assistant
Assistente CLI/TUI em Rust para listar dumps em MinIO/S3, baixar arquivos para uma pasta local e restaurar um banco PostgreSQL com DROP DATABASE e recriação controlados por confirmação explícita.
Requisitos
- Rust stable
- Ferramentas PostgreSQL no
PATH:psqlpg_restore
- Acesso ao bucket MinIO/S3 com API compatível com S3
Instalação
cargo build --release
O binário ficará em:
target/release/restore-assistant
Configuração
Na primeira execução, se nenhuma configuração completa existir, o programa pergunta os campos um a um, no estilo do rclone, e salva em:
~/.config/rsdb/config.yml
Senhas são perguntadas sem eco no terminal. O programa também continua aceitando .env e config.toml na raiz do projeto.
A ordem de precedência é:
- Variáveis de ambiente /
.env config.tomllocal~/.config/rsdb/config.yml
Exemplo .env:
cp .env.example .env
Exemplo config.toml:
cp config.example.toml config.toml
Exemplo config.yml:
mkdir -p ~/.config/rsdb
cp config.example.yml ~/.config/rsdb/config.yml
Variáveis obrigatórias:
MINIO_ENDPOINTMINIO_ACCESS_KEYMINIO_SECRET_KEYMINIO_BUCKETPOSTGRES_HOSTPOSTGRES_PORTPOSTGRES_USERPOSTGRES_PASSWORDPOSTGRES_DATABASE
Opcionais:
MINIO_REGION, padrãous-east-1POSTGRES_SSLMODE, padrãopreferDUMPS_DIR, padrão./dumps
Senhas nunca são exibidas. A senha do PostgreSQL é passada para psql e pg_restore por PGPASSWORD.
Uso
Abrir a TUI:
restore-assistant
Listar dumps remotos e locais:
restore-assistant list
Restaurar diretamente um dump local ou remoto, ainda com confirmação:
restore-assistant restore backup.sql.gz
Validar configuração, pasta local, conexão S3 e ferramentas PostgreSQL:
restore-assistant config-check
Controles da TUI
↑/↓ouk/j: navegar/: filtrar por nomeEsc: limpar filtro ou cancelar confirmaçãor: atualizar listasd: apagar o arquivo local do dump selecionado, após confirmaçãoEnter: selecionar/restaurarq: sair
Antes da restauração, a TUI mostra o host, banco de destino e dump selecionado, com aviso de que o banco será apagado. A restauração só ocorre após confirmação.
Formatos suportados
.sql: restaurado compsql.sql.gz,.sql.zst: descompactados e restaurados compsql.dump,.backup,.bin,.binary,.tar: restaurados compg_restore.dump.gz,.dump.zst,.backup.gz,.backup.zst,.bin.gz,.bin.zst,.binary.gz,.binary.zst,.tar.gz,.tar.zst: descompactados para arquivo temporário e restaurados compg_restore
Logs
Logs técnicos são gravados em:
restore-assistant.log
Erros exibidos na TUI ou CLI são resumidos para o usuário; detalhes técnicos ficam no log.