我正在尝试使用vendor\bin\doctrine orm:schema-tool:create
创建架构,但收到此错误:
致命错误:未捕获PDOException:SQLSTATE [42S02]:基表或 找不到视图:1146表'eventapp.event'不存在 C:\\厂商\教义\ DBAL \ lib中\学说\ DBAL \驱动\ PDOStatement.php:105
我正在使用MySQL和Doctrine ORM 2.以前使用相同的表存在模式,我之前使用vendor\bin\doctrine orm:schema-tool:drop --force
,它正确执行,因此它不会成为连接的问题。 orm:schema-tool:update
给了我同样的错误。
我尝试删除架构并使用相同名称再次创建架构,但仍然收到错误。我还检查了每个实体类的注释,它们都是正确的。例如:
/**
* @ORM\Entity
* @ORM\Table(name="event")
**/
class Event
{
...
我的猜测:我有两个与event
具有多对一关联的实体,我假设架构工具在创建架构时正在查找该表,并且因为它不存在,我收到这个错误。我两次得到错误的事实似乎支持这一点,但我可能完全错了。这就是协会的样子:
/**
* @ORM\ManyToOne(targetEntity="Event")
* @ORM\JoinColumn(name="event", referencedColumnName="id")
*/
private $event;
在event
中没有相应的条目,因为我只需要它是单向的。
编辑:没有。从我的实体中删除了所有关联。仍然得到完全相同的错误消息。我完全迷失在这里。
如何让Doctrine在此处正确创建架构?我还没有尝试创建一个空的event
表,但这不是一个理想的解决方案,因为我希望它可以轻松部署而无需进一步设置......
答案 0 :(得分:0)
...对于遇到同样错误的人,我想出了问题所在。在我的bootstrap.php
中,我使用实体管理器(例如$eventRepository = $entityManager->getRepository('Event')
)从表中检索数据。删除此代码使命令正确执行。