Com a versão 0.3.0 algumas coisas deixaram de funcionar, outras mudaram seu funcionamento. Nesse guia rápido, vamos passar por alguns pontos essenciais que necessitam de atualização no TypeORM na aplicação Rentx, desenvolvida no Ignite Node.js.
⚠️ Antes de tudo, é extremamente importante que leiam com muita atenção o changelog da versão 0.3.0, pois neste guia não será explicada todas as alterações da versão, apenas as necessárias para refatorar o Rentx.
O arquivo ormconfig.
foi descontinuado. A nova forma de conexão e configuração é por meio da classe DataSource
.
Essa classe pode receber as entities
e migrations
, assim como na configuração antiga, por meio do array de string (caminho para serem carregados), mas essa funcionalidade já está como depreciada e será removida nas versões futuras, por isso o ideal é informar diretamente cada classe no array.
Exemplo:
Para iniciar a conexão é preciso executar o método initialize
da instância da classe.
Para encerrar a conexão não é mais o método close
, e sim o destroy
.
Todos os comandos da cli também não suportam mais o arquivo ormconfig.
, agora é preciso informar o caminho para um arquivo que exporte por padrão uma instância da classe DataSource
.
Exemplo:
Para acessar os repositórios do TypeORM, antes era importado o método getRepository
, essa forma está depreciada. Para recuperar os repositórios é preciso importar o dataSource
e utilizar o método getRepository
por ele.
Exemplo:
O método findOne
não existe mais, então quando precisar buscar um único registro, deve utilizar o findOneBy
, passando um objeto de configurações, com a condição a ser realizada.
Exemplo:
O método findByIds
não existe mais, então para buscar por um array de ids é preciso utilizar o operador In
.
Exemplo:
Essas são as principais alterações que se farão necessárias para atualizar o TypeORM. É claro que outras mudanças eventuais (tipos, importações, scripts) também são necessárias, mas decidimos não abordar nesse documento para não deixar extenso e complexo.
Para facilitar a atualização da sua aplicação, disponibilizamos abaixo o link direto para o commit efetuando as atualizações necessárias.
chore: update typeorm version · rocketseat-education/ignite-nodejs-rentx@9467254
Espero ter ajudado, abraços 💜