Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Erro - Mapear a coluna

Olá Alura,

aqui está o link:

git@github.com:tiagobrandao03/2612-doctrine.git

Eu mapeei a Coluna nome e ela mostrou que não tinha dados inseridos. Ate ai tudo certo:

php bin/doctrine.php orm:info
Found 3 mapped entities:
 [OK]   Alura\Doctrine\Entity\Course
 [OK]   Alura\Doctrine\Entity\Phone
 [OK]   Alura\Doctrine\Entity\Student
php bin/doctrine.php orm:mapping:describe Course
 Identifier ["id"]	; Table {"name": "Course" }; targetEntity  Alura\Doctrine\Entity\Student; sourceEntity  Alura\Doctrine\Entity\Course; 
php bin/doctrine.php orm:mapping:describe Student 
 Identifier ["id"]	; Table {"name": "Student" };

fieldName  courses
      joinTable  {  "name": "student_course",  
"joinColumns": [  { "name": "student_id", "referencedColumnName": "id", "onDelete": "CASCADE" }  ], "inverseJoinColumns": [{
                       "name": "course_id", "referencedColumnName": "id","onDelete":              "CASCADE"}]}

php bin/doctrine.php orm:validate-schema [OK] The mapping files are correct.

php bin/doctrine.php orm:schema-tool:update --dump-sql  
ALTER TABLE Course ADD COLUMN nome VARCHAR(255) NOT NULL;
php bin/doctrine.php orm:schema-tool:update --force
 Updating database schema…
In ExceptionConverter.php line 83:
An exception occurred while executing a query: SQLSTATE[HY000]: General error: 1 Cannot add a NOT NULL column with default value NULL
In Exception.php line 28:
SQLSTATE[HY000]: General error: 1 Cannot add a NOT NULL column with default value NULL

Depois eu fiz um insert e aqui esta o erro. Nãoe sei se tem a ver com a ortografia ou sqlite:

PHP Fatal error:  Uncaught PDOException: SQLSTATE[HY000]: General error: 1 table Course has no column named nome in C:\xampp\htdocs\2612-doctrine\vendor\doctrine\dbal\src\Driver\PDO\Connection.php:59

A questão é que o prompt acusa que tem o erro no doctrine e não é, acredito que seja um erro em alguma coisa que eu deixei passar.

2 respostas

Ola Tiago tudo bom? sou estudante tambem e olhando por cima eu acredito que esta tentando adicionar a coluna que não pode estar nula em uma tabela que ja deve ter registros. Como a coluna nao pode estar nula os outros registros ainda não dado pra ela e o banco grita erro pra nós. Espero que ajude ai , bons estudos!

solução!

Sim. Eu fiz o insert, a questão é que ele não está aceitando. A tabela está acusando que está sem a coluna "Nome". Eu to precisando de ajdua para rever o que está acontecendo, se tem alguem que fez essa parte do codigo.

A coluna "$nome", ela é "string" e "readnonly":

class Course{
...

public function __construct(
        #[Column]
        public readonly string $nome
    )

...
}

Então eu to precisando de ajuda mesmo, para completar e o curso Doctrine.