1
resposta

Erro ao executar a migration

estou como seguinte erro

criei a migration e executei

<?php

declare(strict_types=1);

namespace Alura\Doctrine\Migrations;

use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;

/**
 * Auto-generated Migration: Please modify to your needs!
 */
final class Version20240403135341 extends AbstractMigration
{
    public function getDescription(): string
    {
        return 'Criação de uma tabela de testes';
    }

    public function up(Schema $schema): void
    {

        //$this->addSql('CREATE TABLE teste (id INTEGER PRIMARY KEY, coluna_teste VARCHAR(255), primary key(id);)');
        $table = $schema->createTable('teste');
        $table->addColumn('id', 'integer')
              ->setAutoincrement(true);
        $table->addColumn('coluna_teste', 'string');

        $table->setPrimaryKey(['id']);
    }

    public function down(Schema $schema): void
    {
        // this down() migration is auto-generated, please modify it to your needs
      //$this->addSql('DROP TABLE teste');
      $schema->dropTable('teste');
    }
}

não teve nenhum erro mas minha tabela não foi criada, aparece o seguinte erro, quando rodo php bin/doctrine.php dbal:run-sql "select * from teste"

An exception occurred while executing a query: SQLSTATE[HY000]: General error: 1 no such table: teste

1 resposta

Olá Adriano, como vai?

Sua migração foi executada com sucesso, mas a tabela não está sendo encontrada. Isso pode ser devido a algumas razões:

  1. Execução da migração: Verifique se a migração foi executada corretamente. Geralmente, você pode verificar isso na tabela de migrações do Doctrine. Se a migração estiver lá, então foi executada.
  2. Conexão com o banco de dados: Certifique-se de que você está conectado ao banco de dados correto. Às vezes, quando você executa migrações em ambientes diferentes, a conexão pode estar apontando para um banco de dados diferente.
  3. Tabela de teste no banco de dados: Confirme se a tabela de teste realmente existe no banco de dados. Você pode usar um cliente de banco de dados (como phpMyAdmin, MySQL Workbench, etc.) para verificar isso.
  4. Erro de digitação: Verifique se não há erros de digitação nos nomes de tabelas e colunas em seu código.
  5. Cache do esquema: Às vezes, o Doctrine mantém um cache do esquema do banco de dados. Certifique-se de limpar o cache do Doctrine para garantir que ele esteja ciente das alterações de esquema mais recentes.

Após verificar esses pontos, você pode tentar reexecutar a migração e verificar novamente se a tabela foi criada corretamente.

Espero ter ajudado!

Caso tenha dúvidas, fico à disposição.

Abraços e bons estudos!