Após seguir as aulas, tentei executar o arquivo criar_aluno.php, mas me deparei com o seguinte erro. O que estou fazendo de errado? Se entendi corretamente, ele diz que a tabela Aluno não existe, mas ela não deveria ter sido criada na migração?
PHP Fatal error: Uncaught PDOException: SQLSTATE[HY000]: General error: 1 no such table: Aluno in D:\Alura\projeto-doctrine\vendor\doctrine\dbal\lib\Doctrine\DBAL\Driver\PDOConnection.php:78
Stack trace:
#0 D:\Alura\projeto-doctrine\vendor\doctrine\dbal\lib\Doctrine\DBAL\Driver\PDOConnection.php(78): PDO->prepare('INSERT INTO Alu...', Array)
#1 D:\Alura\projeto-doctrine\vendor\doctrine\dbal\lib\Doctrine\DBAL\Statement.php(80): Doctrine\DBAL\Driver\PDOConnection->prepare('INSERT INTO Alu...')
#2 D:\Alura\projeto-doctrine\vendor\doctrine\dbal\lib\Doctrine\DBAL\Connection.php(1211): Doctrine\DBAL\Statement->__construct('INSERT INTO Alu...', Object(Doctrine\DBAL\Connection))
#3 D:\Alura\projeto-doctrine\vendor\doctrine\orm\lib\Doctrine\ORM\Persisters\Entity\BasicEntityPersister.php(273): Doctrine\DBAL\Connection->prepare('INSERT INTO Alu...')
#4 D:\Alura\projeto-doctrine\vendor\doctrine\orm\lib\Doctrine\ORM\UnitOfWork.php(1088): Doctrine\ORM\Persisters\Entity\BasicEntityPersister->executeInserts()
#5 D:\Alura\projeto-doctrine\ven in D:\Alura\projeto-doctrine\vendor\doctrine\dbal\lib\Doctrine\DBAL\Driver\AbstractSQLiteDriver.php on line 59
Fatal error: Uncaught PDOException: SQLSTATE[HY000]: General error: 1 no such table: Aluno in D:\Alura\projeto-doctrine\vendor\doctrine\dbal\lib\Doctrine\DBAL\Driver\PDOConnection.php:78
Stack trace:
#0 D:\Alura\projeto-doctrine\vendor\doctrine\dbal\lib\Doctrine\DBAL\Driver\PDOConnection.php(78): PDO->prepare('INSERT INTO Alu...', Array)
#1 D:\Alura\projeto-doctrine\vendor\doctrine\dbal\lib\Doctrine\DBAL\Statement.php(80): Doctrine\DBAL\Driver\PDOConnection->prepare('INSERT INTO Alu...')
#2 D:\Alura\projeto-doctrine\vendor\doctrine\dbal\lib\Doctrine\DBAL\Connection.php(1211): Doctrine\DBAL\Statement->__construct('INSERT INTO Alu...', Object(Doctrine\DBAL\Connection))
#3 D:\Alura\projeto-doctrine\vendor\doctrine\orm\lib\Doctrine\ORM\Persisters\Entity\BasicEntityPersister.php(273): Doctrine\DBAL\Connection->prepare('INSERT INTO Alu...')
#4 D:\Alura\projeto-doctrine\vendor\doctrine\orm\lib\Doctrine\ORM\UnitOfWork.php(1088): Doctrine\ORM\Persisters\Entity\BasicEntityPersister->executeInserts()
#5 D:\Alura\projeto-doctrine\ven in D:\Alura\projeto-doctrine\vendor\doctrine\dbal\lib\Doctrine\DBAL\Driver\AbstractSQLiteDriver.php on line 59
Arquivo criar_aluno
<?php
use Alura\Doctrine\Entity\Aluno;
use Alura\Doctrine\Entity\Telefone;
use Alura\Doctrine\Helper\EntityManagerFactory;
require_once __DIR__ . '/../vendor/autoload.php';
$entityManagerFactory = new EntityManagerFactory();
$entityManager = $entityManagerFactory->getEntityManager();
$aluno = new Aluno();
$aluno->setName($argv[1]);
for ($i = 2; $i < $argc; $i++){
$numeroTelefone = $argv[$i];
$telefone = new Telefone();
$telefone->setNumero($numeroTelefone);
$entityManager->persist($telefone);
$aluno->addTelefone($telefone);
}
$entityManager->persist($aluno);
$entityManager->flush();
Código do migrations
<?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 Version20201109173746 extends AbstractMigration
{
public function getDescription() : string
{
return '';
}
public function up(Schema $schema) : void
{
// this up() migration is auto-generated, please modify it to your needs
$this->addSql('CREATE TABLE Aluno (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, name VARCHAR(255) NOT NULL)');
$this->addSql('CREATE TABLE Telefone (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, aluno_id INTEGER DEFAULT NULL, numero VARCHAR(255) NOT NULL)');
$this->addSql('CREATE INDEX IDX_D8448137B2DDF7F4 ON Telefone (aluno_id)');
}
public function down(Schema $schema) : void
{
// this down() migration is auto-generated, please modify it to your needs
$this->addSql('DROP TABLE Aluno');
$this->addSql('DROP TABLE Telefone');
}
}