【发布时间】:2014-08-22 11:52:45
【问题描述】:
我正在遵循here 和also here 中描述的测试设置。当我尝试运行我的测试并且正在创建测试数据库时,我收到以下错误:
[Doctrine\ORM\Tools\ToolsException]
Schema-Tool 失败并出现错误“执行“CREATE INDEX deletedAtidx ON SurveyHash (deletedAt)”时发生异常:
SQLSTATE[HY000]: 一般错误: 1 index deletedAtidx already exists' while execution DDL: CREATE INDEX deletedAtidx ON SurveyHash (deletedAt)[Doctrine\DBAL\Exception\TableExistsException]
执行“CREATE INDEX deletedAtidx ON SurveyHash (deletedAt)”时发生异常:
SQLSTATE[HY000]: 一般错误: 1 index deletedAtidx 已经存在[Doctrine\DBAL\Driver\PDOException]
SQLSTATE[HY000]: 一般错误: 1 index deletedAtidx 已经存在[PDO异常]
SQLSTATE[HY000]: 一般错误: 1 index deletedAtidx 已存在doctrine:schema:create [--dump-sql] [--em[="..."]]
清除数据库
[Doctrine\DBAL\DBALException]
执行“DELETE FROM PageImage”时发生异常:
SQLSTATE[HY000]: 一般错误: 1 no such table: PageImage[PDO异常]
SQLSTATE[HY000]: 一般错误: 1 no such table: PageImagedoctrine:fixtures:load [--fixtures[="..."]] [--append] [--em="..."] [--purge-with-truncate]
Doctrine\DBAL\Exception\TableNotFoundException : 执行 'SELECT t0.label AS label_1, t0.value AS value_2 FROM Setting t0 WHERE t0.label = 时发生异常LIMIT 1' with params ["webservice"]:
SQLSTATE[HY000]: 一般错误: 1 no such table: Setting
查看我的实体,deletedAt 索引没有在我的 SurveyHash 实体中声明了两次,并且我有 PageImage 和 Setting 的实体,但这些表不是t 正在创建,由 sqliteman 验证。进一步测试(请参阅下面的答案之一中的 cmets)表明,由于多个表使用相同的索引名称,它会引发错误。
我的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,如果这有影响的话。
【问题讨论】:
标签: php symfony doctrine-orm automated-tests