sempre que tento migrar as tabelas recebo esse erro, só consigo fazer as migrations se deletar todas as tabelas do banco.
sempre que tento migrar as tabelas recebo esse erro, só consigo fazer as migrations se deletar todas as tabelas do banco.
Olá Edison! Tudo bem?
Pelo que vejo na imagem, o erro ocorre porque a tabela pedidos
já existe no banco de dados, e a migração está tentando criá-la novamente. Isso geralmente acontece quando há um problema de sincronização entre o estado atual do banco de dados e as migrações ou a falta de configuração para validação da existência da tabela.
Para solucionar isso, você pode corrigir a migração. Se a tabela pedidos
já existe, você pode modificar a migração para verificar a existência da tabela antes de criá-la. No arquivo de migração, você pode adicionar uma verificação condicional:
import { MigrationInterface, QueryRunner } from "typeorm";
export class AdicionaTabelaPedido1716456911623 implements MigrationInterface {
public async up(queryRunner: QueryRunner): Promise<void> {
const tableExists = await queryRunner.hasTable('pedidos');
if (!tableExists) {
await queryRunner.query(`
CREATE TABLE "pedidos" (
"id" uuid NOT NULL DEFAULT uuid_generate_v4(),
"valor_total" integer NOT NULL,
"status" character varying NOT NULL,
"created_at" TIMESTAMP NOT NULL DEFAULT now(),
"update_at" TIMESTAMP NOT NULL DEFAULT now(),
"delete_at" TIMESTAMP,
"usuarioId" uuid,
CONSTRAINT "PK_ebb5680ed29a24efdc586846725" PRIMARY KEY ("id")
)
`);
}
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`DROP TABLE "pedidos"`);
}
}
Espero ter ajudado e bons estudos!
Estranho que mesmo deletando as tabelas do banco e tentando refazer a migração deu o mesmo erro, Não cheguei a tentar a solução pois liguei o synchronize e sincronizou certinho. Rodei as migrações de novo e deu tdo certo.