【发布时间】:2014-10-09 09:03:11
【问题描述】:
在我的 CI 环境中,我将删除数据库并在每次新构建时重新创建它。在较旧的项目上,这很好用。在一个较新的项目中,这突然开始失败。
运行时
php app/console doctrine:database:drop --env=test --force
一切顺利。但在那之后,所有控制台命令,比如
php app/console cache:clear
开始报错
[Doctrine\DBAL\Exception\ConnectionException]
An exception occured in driver: SQLSTATE[42000] [1049] Unknown database '(my database)'
这是我在尝试使用教义创建新数据库时遇到的错误,所以我怀疑这与 Symfony 在运行控制台时所做的引导有关。
我已经通过将 Symfony 从 2.5 降级到 2.3 来测试这个问题,强制 Symfony 和 Doctrine 到与另一个应用程序/控制台没有中断的项目中相同的版本 - 没有结果。我目前正在跟踪运行不同命令的共同点,并且怀疑 bootstrap.php 可能能够提供一些关于它可能在哪里中断的线索。
【问题讨论】:
-
如果手动创建数据库会怎样?
-
手动工作正常。运行命令时似乎与 Symfony 引导有关。
-
在导入实体之前尝试
php app/console doctrine:database:create -
@Trone 删除数据库后,所有控制台命令都会中断。这与教义如何在 symfony 引导程序中引导自身有关——它试图寻找数据库,但没有找到并中断。这似乎是较新的学说版本中引入的错误。
-
@Markus 我只需要手动创建表,其余命令就可以工作了。
标签: mysql symfony doctrine-orm