Executando verificação de segurança...
1

Salve @filipedeschamps e @guilfer! Primeiramente obrigado pelo interesse no projeto 😍🤝

Porque quis montar algo novo:

  • Não encontrei muitas bibliotecas dedicadas ao banco de dados MySql para apenas rodar migrations (embora tenha diversos ORMs que fazem isso, não há muita coisa dedicada e exclusiva ao banco de dados mysql). Uma bibliote que vi e achei massa foi essa "https://www.npmjs.com/package/mysql-migrations", mas o conceito e forma de uso é diferente da proposta na biblioteca que criei. (Obs.: o projeto node-mysql-migrate esta no começo, fiz em pouco tempo para usar em alguns projetos internos que minha empresa precisava)
  • Hoje temos disponiveis diversos ORMs mas para alguns projetos em especificos da minha empresa não queriamos usar um ORM, precisavamos única e exclusivamente rodar migrations.
  • Me insipirei muito no projeto da TabNews ao ver o uso do node-pg-migrate, quis tentar criar algo semelhante só que dedicado para o MySql.
  • Outra coisa que me preocupou ao recorrer a um ORM foi ao ver o numero de bugs abertos... um ORM famosos como o TypeOrm possui aberto hoje cerca de 1.6k, sendo 900 só de bugs. Claro que não são bugs direcionados ao banco de dados Mysql, mas isso fez eu pensar mais a respeito do uso dessas bibliotecas (obs.: Embora isso, gosto muito do TypeOrm inclusive já usei em outros projetos).

Sobre a forma de uso:
É dessa forma mesmo @filipedeschamps, precisa apenas chamar a MigrationDataSource no inicio do projeto que ela se encarrega do restante. Mas isso que você me perguntou levantou uma dúvida aqui. Será que isso não irá gerar dúvida em outras pessoas? 🤔 (posso mudar, o que você acha melhor?)

Sobre a sugestão
E uma sugestão que daria na interface é poder definir uma pasta onde estão as migrations, ao invés de precisar importar e declarar uma a uma 🤝
Isso é algo que estou querendo e com certeza vou adicionar ao projeto 😍

Carregando publicação patrocinada...
1

Tiago, sensacional sua explicação 🤝

E agora fiquei super curioso sobre como funciona apenas declarar a classe, sem precisar instanciar ela para rodar o construtor. Eu vi que você já dá um run nas migrações no construtor, mas não sabia que ele já conseguia ser executado só pelo fato de declarar a classe ali daquela forma.

Então de qualquer forma, sugiro mudar para isso não virar um ponto de questionamento/atrito por quem está querendo aprender a usar o módulo 👍