Stack Overflow em Português Asked by Max Rogério on January 25, 2021
Preciso restaurar um banco de dados postgres com nodejs…
Minha rotina faz o download do ultimo backup (custom dump) pelo ftp, e cria o banco (sem a estrutura).
Agora preciso executar esse arquivo que fiz o download para restaurar o banco. Mas não sei como.
Pensei que só era só ler o conteúdo do arquivo e executar como uma query, mas não. Também não encontrei nenhuma lib ou exemplo para isso.
Preciso de exemplos ou alguma idéia de como fazer isso…
No Node.js
você pode executar uma aplicação externa. Neste caso usaremos o módulo child_process
para executar o psql
e despejar o conteúdo no novo banco:
const { spawn } = require('child_process');
const { createReadStream } = require('fs');
const restaurar = (destino, origem) => {
console.time('Despejando conteúdo.');
// Cria o banco de dados
const child = spawn('createdb', [destino]);
child.on('exit', () => {
const conteudo = createReadStream(origem);
const psql = spawn('psql', [destino]);
conteudo.pipe(psql.stdin);
console.timeEnd('Despejando conteúdo.');
});
};
The
child_process
module provides the ability to spawn child processes in a manner that is similar, but not identical, topopen(3)
.
Em tradução livre:
O módulo
child_process
provê a habilidade de executar processos filhos de uma maneira similar, mas não idêntica, aopopen(3)
.
Answered by Sorack on January 25, 2021
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP