8
respostas

Erro ao gerar a migrations - cria-tabelas

Por favor alguem poderia me dar um help, me deparei com esse erro e nao estou conseguindo evoluir no curso já fiz diversas coisa mas sem sucesso ainda :(

$ npm run typeorm migration:generate migrations/cria-tabelas

loja@0.0.1 typeorm typeorm-ts-node-esm --dataSource src/db/data-source-cli.ts migration:generate migrations/cria-tabelas

No changes in database schema were found - cannot generate a migration. To create a new empty migration use "typeorm migration:create" command

8 respostas

Olá, Robson! Como vai?

Pelo erro apresentado, parece que não foram encontradas alterações no esquema do banco de dados, por isso não é possível gerar a migração. O TypeORM pode não reconhecer algumas modificações e talvez você precise desfazer a migration anterior. No entanto, antes disso, vamos verificar os pontos a seguir:

  • Você precisa enviar todo o caminho do arquivo, como no comando realizado pelo instrutor npm run typeorm migration:generate src/db/migrations/cria-tabelas
  • Verifique se você realizou alguma alteração no esquema do banco de dados que ainda não foi detectada pelo TypeORM. Certifique-se de que todas as alterações foram corretamente refletidas nos modelos e entidades do seu projeto.
  • Lembre-se de conferir se todas as configurações do seu projeto estão corretas, como a conexão com o banco de dados e as configurações do TypeORM.

Para que a gente consiga te ajudar melhor Compartilhe o código do seu repositório no github

Fico no aguardo, até breve!

Bons estudos!

Boa noite!! Camila tudo joia e contigo?

Ainda estou enfrentando o erro nada de novo no back kkk me estorou esse erro

$ npm run typeorm migration:generate src/db/migrations/cria-tabelas

loja@0.0.1 typeorm typeorm-ts-node-esm -d src/db/data-source-cli.ts migration:generate src/db/migrations/cria-tabelas

Error during migration generation: error: password authentication failed for user "root" at Parser.parseErrorMessage (D:\Projetos\Alura\Backend\NodeJS\API-Restful-CRUD-Loja\Loja\node_modules\pg-protocol\src\parser.ts:369:69) at Parser.handlePacket (D:\Projetos\Alura\Backend\NodeJS\API-Restful-CRUD-Loja\Loja\node_modules\pg-protocol\src\parser.ts:188:21) at Parser.parse (D:\Projetos\Alura\Backend\NodeJS\API-Restful-CRUD-Loja\Loja\node_modules\pg-protocol\src\parser.ts:103:30) at Socket. (D:\Projetos\Alura\Backend\NodeJS\API-Restful-CRUD-Loja\Loja\node_modules\pg-protocol\src\index.ts:7:48) at Socket.emit (node:events:513:28) at Socket.emit (node:domain:489:12) at addChunk (node:internal/streams/readable:324:12) at readableAddChunk (node:internal/streams/readable:297:9) at Socket.Readable.push (node:internal/streams/readable:234:10) at TCP.onStreamRead (node:internal/stream_base_commons:190:23) { length: 100, severity: 'FATAL', code: '28P01', detail: undefined, hint: undefined, position: undefined, internalPosition: undefined, internalQuery: undefined, where: undefined, schema: undefined, table: undefined, column: undefined, dataType: undefined, constraint: undefined, file: 'auth.c', line: '329', routine: 'auth_failed' }

Olá Robson eu tive o mesmo problema relatado por você, pra mim eu consegui resolver da seguinte forma: Alterei no package.json a versão do typeorm de 0.3.12 para 0.3.15 como está abaixo:

"dependencies": {
        "typeorm": "^0.3.15"
}

apaguei a pasta node_modules e dei o npm install novamente. Após isso consegui rodar a migration.

Bom dia!! Carlos Eduardo

Realmente me ajudou mudando a versão do typeorm, mas tive que mudar também versão dotenv instalando a lib $ npm i dotenv@15.0.3

"dependencies": { "dotenv": "15.0.3", "typeorm": "^0.3.15" },

Meus agradecimentos a Camila e Carlos Eduardo já estava esse bug a 2 dias consumindo meu juízo kkkk :D

Resolvido!

Parabéns, Robson e Carlos!

Foi como eu disse no post, às vezes surgem alguns problemas entre as versões utilizadas. Por isso solicitei seu código no github, assim veria quais as versões que vc está utilizando.

Obrigada novamente por compartilharem o problema e a solução!

Bons estudos!

Boa tarde!! Camila muito obrigado tudo bem?

Me deparei com outro erro agora assim que implementei esse trecho de código.

// email-eh-unico.validator.ts

  async validate(value: any): Promise<boolean> {
    try {
      const usuarioComEmailExiste = await this.usuarioService.buscaPorEmail(
        value,
      );

      return !usuarioComEmailExiste;
    } catch (erro) {
      if (erro instanceof NotFoundException) {
        return true;
      }

      return false;
    }
  }

Surgiu esse erro aqui: Module '"../validacao/email-unico.validator"' has no exported member 'EmailEhUnico'.``

https://github.com/RobsonCoura/E-commerce-Compree.git

Olá novamente!

Você instalou o class-validator? Nao o encontrei no seu package.json Uma solução que encontrei no stackoverflow é reinstalar o nest config npm uninstall @nestjs/config && npm install @nestjs/config , pois aparentemente o seu ConfigModule não está importando corretamente.

Teste também o código a seguir, pois parece que falta informação:

import { Injectable } from '@nestjs/common';
import {
  registerDecorator,
  ValidationOptions,
  ValidatorConstraint,
  ValidatorConstraintInterface,
} from 'class-validator';
import { UsuarioService } from '../usuario.service';

@Injectable()
@ValidatorConstraint({ async: true })
export class EmailEhUnicoValidator implements ValidatorConstraintInterface {
  constructor(private usuarioService: UsuarioService) {}

  async validate(value: any): Promise<boolean> {
    const usuarioComEmailExiste = await this.usuarioService.buscaPorEmail(
      value,
    );
    return !usuarioComEmailExiste;
  }
}

export const EmailEhUnico = (opcoesDeValidacao: ValidationOptions) => {
  return (objeto: object, propriedade: string) => {
    registerDecorator({
      target: objeto.constructor,
      propertyName: propriedade,
      options: opcoesDeValidacao,
      constraints: [],
      validator: EmailEhUnicoValidator,
    });
  };
};