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

Sensacional o projeto Tiago! Parabéns por disponibilizar algo assim open source 🤝

Em paralelo, tive a mesma curiosidade do guilfer sobre qual a característica do seu projeto que fez necessário criar um novo módulo, pois essa informação é muito valiosa para aprendermos sobre contextos encontrados na vida real 👍

E outro ponto que me chamou atenção foi esse trecho de código:

   import express from 'express'
   import MigrationDataSource from './database/migration'
   
   MigrationDataSource
   
   const app = express()
   ...
   app.listen(3333, => console.log('Server is running on port: 3333'))

O MigrationDataSource deve ser declarado daquela forma mesmo? Ou deveria ser executado com MigrationDataSource()?

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 🤝

Ps: atualizei o título para colocar Pitch na frente, pois você tem vículo direto com o projeto 🤝

Carregando publicação patrocinada...
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 😍

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 👍