我正在遵循描述的测试设置here http://sgoettschkes.blogspot.com/2012/06/symfony2-test-database-best-pratice.html and 也在这里 http://sgoettschkes.blogspot.de/2012/04/testclasses-for-symfony2.html。当我尝试运行测试并且正在创建测试数据库时,出现以下错误:
[学说\ORM\工具\ToolsException]
架构工具失败,并出现错误“执行‘CREATE INDEX returnedAtidx ON SurveyHash (deletedAt)’时发生异常”:
SQLSTATE[HY000]:一般错误:执行 DDL 时,1 个索引 returnedAtidx 已存在:CREATE INDEX returnedAtidx ON SurveyHash (deletedAt)
[学说\DBAL\异常\TableExistsException]
执行“CREATE INDEX returnedAtidx ON SurveyHash (deletedAt)”时发生异常:
SQLSTATE[HY000]:一般错误:1个索引deletedAtidx已存在
[学说\DBAL\驱动程序\PDOException]
SQLSTATE[HY000]:一般错误:1个索引deletedAtidx已存在
[PDO异常]
SQLSTATE[HY000]:一般错误:1个索引deletedAtidx已存在
学说:架构:创建 [--dump-sql] [--em[="..."]]
清除数据库
[学说\DBAL\DBALException]
执行“DELETE FROM PageImage”时发生异常:
SQLSTATE[HY000]:一般错误:1 没有这样的表:PageImage
[PDO异常]
SQLSTATE[HY000]:一般错误:1 没有这样的表:PageImage
学说:fixtures:load [--fixtures[="..."]] [--append] [--em="..."] [--purge-with-truncate]
Doctrine\DBAL\Exception\TableNotFoundException :执行 'SELECT t0.label AS label_1, t0.value AS value_2 FROM 设置 t0 WHERE t0.label = 时发生异常LIMIT 1' 带参数 [“webservice”]:
SQLSTATE[HY000]:一般错误:1 没有这样的表:设置
看看我的实体,deletedAt
索引是not在我的声明中两次SurveyHash
实体,并且我都有实体PageImage
and Setting
,但经 sqliteman 验证,这些表尚未创建。进一步的测试(请参阅下面的答案之一中的注释)表明,由于多个表使用相同的索引名称,它会引发错误。
My config_test.yml
有以下内容:
doctrine:
dbal:
driver: pdo_sqlite
path: %kernel.cache_dir%/test.db
charset: UTF8
orm:
auto_generate_proxy_classes: true
auto_mapping: true
由于保密协议,我可以分享的数据库信息有点有限,所以我希望这些错误是由上面的链接或我的链接中的某些内容造成的config_test.yml
。我正在使用 Symfony 2.4.6,如果这有什么区别的话。