加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 尝试测试Symfony 2 app时出现SQL错误 – 列已经存在,表缺

发布时间:2020-12-13 22:11:06 所属栏目:PHP教程 来源:网络整理
导读:我正在按照 here和 also here所述的测试设置进行操作.当我尝试运行测试时,测试数据库正在创建过程中,我收到以下错误: [DoctrineORMToolsToolsException] Schema-Tool failed with Error ‘An exception occurred while executing ‘CREATE INDEX deleted
我正在按照 here和 also here所述的测试设置进行操作.当我尝试运行测试时,测试数据库正在创建过程中,我收到以下错误:

[DoctrineORMToolsToolsException]
Schema-Tool failed with Error ‘An exception occurred while executing ‘CREATE INDEX deletedAtidx ON SurveyHash (deletedAt)’:
SQLSTATE[HY000]: General error: 1 index deletedAtidx already exists’ while executing DDL: CREATE INDEX deletedAtidx ON SurveyHash (deletedAt)

[DoctrineDBALExceptionTableExistsException]
An exception occurred while executing ‘CREATE INDEX deletedAtidx ON SurveyHash (deletedAt)’:
SQLSTATE[HY000]: General error: 1 index deletedAtidx already exists

[DoctrineDBALDriverPDOException]
SQLSTATE[HY000]: General error: 1 index deletedAtidx already exists

[PDOException]
SQLSTATE[HY000]: General error: 1 index deletedAtidx already exists

doctrine:schema:create [–dump-sql] [–em[=”…”]]

purging database

[DoctrineDBALDBALException]
An exception occurred while executing ‘DELETE FROM PageImage’:
SQLSTATE[HY000]: General error: 1 no such table: PageImage

[PDOException]
SQLSTATE[HY000]: General error: 1 no such table: PageImage

doctrine:fixtures:load [–fixtures[=”…”]] [–append] [–em=”…”] [–purge-with-truncate]

DoctrineDBALExceptionTableNotFoundException : An exception occurred while executing ‘SELECT t0.label AS label_1,t0.value AS value_2 FROM Setting t0 WHERE t0.label = ? LIMIT 1’ with params [“webservice”]:

SQLSTATE[HY000]: General error: 1 no such table: Setting

查看我的实体,在SurveyHash实体中没有声明deletedAt索引两次,并且我有PageImage和Setting的实体,但是这些表没有被创建,正如sqliteman验证的那样.进一步的测试(参见下面其中一个答案中的注释)表明,由于多个表使用相同的索引名称,它会引发错误.

我的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

由于NDA,我可以分享的数据库信息有点受限,所以我希望这些错误是上面链接或我的config_test.yml的结果.我正在使用Symfony 2.4.6,如果这有所不同.

解决方法

我认为你正在尝试做一个学说:schema:更新数据集有外键的表,或者你试图添加多个数据集.

你可以尝试的是删除数据库模式,重新创建它,然后用数据重新填充它.

所以首先做一个php app / console doctrine:schema:drop –force,然后php app / console doctrine:schema:create然后doctrine:fixtures:load.

我有同样的问题,这对我有用.

我只是飞过第一个链接而你正在做的是调用doctrine:schema:多次创建,当然因为你已经创建了它们而无法工作.你只能教条:架构:更新 – 强制它们或用drop / create重新创建!

回答

根据下面的评论这个答案错误是他给不同表上的不同索引命名相同,但索引中的名字必须是唯一的!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读