尝试测试 Symfony 2 应用程序时出现 SQL 错误 - 列已存在,表丢失

2024-03-11

我正在遵循描述的测试设置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,如果这有什么区别的话。


我认为你正在尝试做一个doctrine:schema:update在数据集具有外键的表上或者您尝试添加多个数据集。

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

所以首先做一个php app/console doctrine:schema:drop --force, then php app/console doctrine:schema:create进而doctrine:fixtures:load.

我遇到了同样的问题,这对我有用。

我刚刚飞过第一个链接,你要做的就是打电话doctrine:schema:create多次,这当然行不通,因为你已经创建了它们。你只能doctrine:schema:update --force它们或使用 drop/create 重新创建!

ANSWER

根据下面的评论,这个答案错误是他给不同表上的不同索引赋予了相同的名称,但是names from index MUST be unique!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

尝试测试 Symfony 2 应用程序时出现 SQL 错误 - 列已存在,表丢失 的相关文章

  • openssl_pkey_get_details($res) 不返回公共指数

    我在用着这个例子 https stackoverflow com a 12575951 2016196使用 php 生成的密钥进行 javascript 加密openssl图书馆 但是 details openssl pkey get de
  • 简单的 PHP 条件帮助: if($Var1 = in list($List) and $Cond2) - 这可能吗?

    这是一个可能的功能吗 我需要检查一个变量是否存在于我需要检查的变量列表中 并且 cond2 是否为 true 例如 if row name 1 2 3 Cond2 doThis 它对我不起作用 我在复制粘贴中更改的只是我的列表和变量名称 i
  • 在 php 中为类自动生成 getter 和 setter 的最佳方法是什么? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我经常创建一个包含一些私有变量的类 当设置此类的实例时 应该可以使用 getter 和 setter 填充该类的所有变量 有没有一种简单的方法可
  • PHP 会话不适用于游戏

    我正在尝试模仿一款名为 SKUNK 用骰子玩 的游戏来完成一项作业 我无法让会话正常工作 这是我第一次使用 PHP 我还被告知无需会议即可完成 这是我的代码
  • 生成大随机数 php [重复]

    这个问题在这里已经有答案了 我想使用 PHP 生成一个包含 75 个字符的数字 我到处寻找 但一无所获 除了这个 http dailycoding com tools RandomNumber aspx http dailycoding c
  • FPDI/FPDF:水印和打印多页

    我修改了这个堆栈问题 当用户尝试下载文件时在 pdf 文件上应用水印 https stackoverflow com questions 3983432 applying watermarks on pdf files when users
  • 如何使用 php 发送服务器错误响应?

    一旦用户点击删除按钮我的 jQuery 脚本要求服务器删除所选项目 现在我想要我的php发送成功或错误响应的脚本 是否有可能触发错误回调万一该项目无法删除 Thanks 我的 jQuery 代码 ajax type post url myA
  • 使用 preg_replace 仅替换第一个匹配项

    我有一个结构类似于以下的字符串 aba aaa cba sbd dga gad aaa cbz 该字符串每次都可能有点不同 因为它来自外部源 我只想替换第一次出现的 aaa 但其他人则不然 是否可以 可选的第四个参数预替换 http php
  • “使用未定义常量”注意,但该常量应该被定义

    共有三个文件 common php controller php 和 user php 文件 common php 如下所示 文件controller php看起来像 文件 user php 如下所示 执行脚本时 会给出通知 注意 使用未定
  • 在 Wordpress 站点中进行 AJAX 调用时出现问题

    我在使用 Wordpress 站点功能的 AJAX 部分时遇到了一些问题 该功能接受在表单上输入的邮政编码 使用 PHP 函数来查找邮政编码是否引用特定位置并返回到该位置的永久链接 我的第一个问题是关于我构建的表单 现在我的表单操作是空白的
  • Woocommerce 结账自定义选择字段

    我有以下功能 将选择列表添加到 woo commerce 结账表单中 woocommerce form field airport pickup array type gt select class gt array airport pic
  • 在 apache docker 容器中运行虚拟主机

    我在同一个 apache 容器中有两个 php 应用程序 我试图在端口上运行其中一个应用程序 因为它需要通过根域而不是子文件夹进行访问 我想在端口 8060 上运行应用程序 我尝试使用 apache 虚拟主机执行此操作 但它不会加载页面 h
  • PHP 中只保留数组的前 N ​​个元素? [复制]

    这个问题在这里已经有答案了 有没有办法只保留数组的前 N 个 例如 10 个 元素 我知道有array pop 但是有没有更好 更优雅的方法呢 您可以使用array slice http php net array slice or arr
  • 表单提交后如何保留选择字段中的选定值?

    我有一个用于将票证上传到数据库的主页 我有一个选择字段 我想保留用户在提交表单之前选择的值 但它没有发生 这是我选择字段的代码
  • CURL 中的 data-urlencode 是什么意思?

    我搜索了很多个小时试图弄清楚 php curl 中的 data urlencode 是什么 我尝试过这个 但我认为这是不对的 xmlpost object1 file https www lob com goblue pdf 在文档中是 d
  • 一次播种多行 laravel 5

    我目前正在尝试为我的用户表播种 如果我像这样尝试 2 行 就会失败 如果我只使用单个数组而不是 users 数组内的 2 个数组来创建一些假数据 那么效果很好 我做错了什么 正确的方法是什么 class UserTableSeeder ex
  • 如何在 Laravel 中使用 PUT http 动词提交表单

    我知道这个问题可能已经提出 但我就是无法让它发挥作用 如果有人可以帮助我 我将非常感激 我安装了 colletive form 但答案也可以是 html 表单标签 现在列出我的表格 我的路线和我的例外情况 Form model array
  • 为什么 Composer 降级了我的包?

    php composer phar update这样做了 删除了 2 3 0 软件包并安装了整个 2 2 5 Zend Framework php composer phar update Loading composer reposito
  • 简单的 PHP 表单:电子邮件附件(代码 Golf)

    想象一下 一个用户想要在其网站上放置一个表单 该表单将允许网站访问者上传一个文件和一条简单的消息 该消息将立即通过电子邮件发送 即 该文件未存储在服务器上 或者如果该文件存储在服务器上 仅暂时 作为文件附件 并在邮件正文中添加注释 查看更多
  • 对具有混合类型值的数组进行数字排序

    我有一个像这样的混合数组 fruits array lemon Lemon 20 banana apple 121 40 50 然后申请sort 其功能如下 sort fruits SORT NUMERIC foreach fruits a

随机推荐