npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

mysql-dump-app

v1.0.0

Published

Backup MySQL com controle de views, rotinas, schema e dados

Readme

mysql-dump-app

Biblioteca Node.js para gerar backup (dump) de bancos MySQL com controle fino do que entra no arquivo: schema, dados, views, triggers e rotinas (procedures e functions). Pensada para quem precisa escolher tabelas, definir a ordem das views ou exportar só rotinas, por exemplo.

Instalação

npm install mysql-dump-app

Uso básico

Informe a conexão e, se quiser, o caminho do arquivo. O resto usa padrões sensatos (schema + dados + triggers + rotinas).

const mysqlDumpApp = require('mysql-dump-app');

await mysqlDumpApp({
    connection: {
        host: 'localhost',
        user: 'root',
        password: 'sua_senha',
        database: 'meu_banco',
    },
    dumpToFile: './backup.sql',
});

Para receber o resultado em memória em vez de gravar em arquivo, omita dumpToFile:

const result = await mysqlDumpApp({
    connection: { host: '...', user: '...', password: '...', database: '...' },
});

console.log(result.dump.schema);  // SQL do schema
console.log(result.dump.data);    // SQL dos dados
console.log(result.dump.trigger);  // SQL dos triggers
console.log(result.dump.routine);  // SQL das procedures/functions
console.log(result.tables);        // lista de tabelas processadas

O que você pode controlar

  • Schema – Incluir ou não as definições (CREATE TABLE e CREATE VIEW). Opção de pular views (schema.view: false).
  • Views – Lista e ordem das views no dump (dump.views: ['view_a', 'view_b']), útil quando uma view depende de outra.
  • Tabelas – Só algumas tabelas ou “todas exceto” (dump.tables + dump.excludeTables).
  • Dados – Incluir ou não os INSERTs; filtros por tabela (dump.data.where).
  • Triggers – Incluir ou não os triggers.
  • Rotinas – Incluir procedures e/ou functions, com opções de DEFINER e DROP IF EXISTS.
  • Arquivo – Gravar em arquivo (dumpToFile) e, se quiser, comprimir (compressFile: true).

A referência completa das opções está nos tipos TypeScript em dist/mysql-dump-app.d.ts (gerado no build).

Exemplos prontos

A pasta exemplos/ traz vários cenários em Markdown com código que você pode copiar e colar:

| Exemplo | Descrição | |--------|------------| | 01-apenas-rotinas | Só stored procedures e/ou functions | | 02-apenas-views | Só o schema das views | | 03-apenas-dados | Só os dados (INSERTs), com opção de WHERE | | 04-apenas-schema | Só estrutura (tabelas + views) | | 05-schema-sem-views | Schema só com tabelas, sem views | | 06-rotinas-e-tabelas | Rotinas junto com schema e/ou dados | | 07-tabelas-especificas | Whitelist ou blacklist de tabelas | | 08-views-ordem-customizada | Views em ordem definida (dependências) | | 09-backup-completo | Backup completo com compactação |

Em todos os exemplos, basta trocar connection pelos dados do seu banco.

Opções principais (resumo)

Conexão (connection)

  • host, port, user, password, database (obrigatórios na prática)
  • charset, ssl (opcionais)

Dump (dump)

  • tables – Lista de tabelas. Com excludeTables: false = só essas (whitelist); com excludeTables: true = todas exceto essas (blacklist).
  • views – Lista de views na ordem desejada. Se tiver itens, só essas views entram no schema, nessa ordem. Vazio = todas as views.
  • schemafalse para não incluir schema. Se for objeto, pode ter view: false para não incluir views, ou opções de formatação/tabela/view.
  • datafalse para não incluir dados. Se for objeto, aceita where, maxRowsPerInsertStatement, includeViewData, etc.
  • triggerfalse para não incluir triggers.
  • routinefalse para não incluir rotinas. Se for objeto: includeProcedures, includeFunctions, definer, dropIfExist, delimiter.

Saída

  • dumpToFile – Caminho do arquivo (ex.: './backup.sql' ou './backup.sql.gz').
  • compressFiletrue para gerar arquivo gzip.

Resultado (DumpReturn)

O retorno da função tem a forma:

  • dump.schema – String SQL do schema ou null.
  • dump.data – String SQL dos dados ou null.
  • dump.trigger – String SQL dos triggers ou null.
  • dump.routine – String SQL das rotinas ou null.
  • tables – Array com as tabelas/views processadas (nome, schema, data, etc.).

TypeScript

O pacote exporta tipos. Após o build, as declarações ficam em dist/mysql-dump-app.d.ts. Em projeto TypeScript você pode importar:

import mysqlDumpApp from 'mysql-dump-app';

Licença

MIT.