Shopware 客户导入错误:EntityManager 已关闭

Posted

技术标签:

【中文标题】Shopware 客户导入错误:EntityManager 已关闭【英文标题】:Shopware customer import error: The EntityManager is closed 【发布时间】:2018-01-16 21:06:55 【问题描述】:

在将批量客户导入 Shopware 时,仅导入 CSV 中的第一行然后引发错误

“EntityManager 已关闭”。

如果我只尝试使用单个数据,它会导入客户,但也会抛出相同的错误“EntityManager 已关闭”。

shopware/var/log/ 中检查了core_production_date.logimportexport.log,那里没有日志。

还检查了Configureation->logfile,也没有。

我怎样才能获得实际的错误日志,为什么会发生这种情况?请让我知道是否有人可以提供帮助。

Shopware 版本为 5.2.27

谢谢。

【问题讨论】:

【参考方案1】:

EntityManager 关闭发生在请求的数据库上下文由于某些 SQL 异常而关闭时。 在我的项目中,这发生在使用 Shopware 的 Resource API 时,也可能被 Importer 使用。资源捕获错误,因此它不会显示在日志中。实体管理器由于 SQL 错误而按原则关闭,并且无法在同一请求中重新打开。因此,之后的任何调用都会以“EntityManager is closed”消息告终。

如果您找到一种在控制台中运行导入的方法,其中的错误至少会显示为控制台日志,这会有所帮助。您还可以查看资源本身,了解哪些数据可能错误或丢失。

【讨论】:

【参考方案2】:

您可以使用 try..catch 并在 catch 子句中重置 EntityManager,如果它已关闭(您应该从 扩展您的 API 类),例如:

try 
 ... you code ...
 catch (\Exception $e) 
    if (!$this->getManager()->isOpen()) 
        $this->resetEntityManager();
    
...

【讨论】:

以上是关于Shopware 客户导入错误:EntityManager 已关闭的主要内容,如果未能解决你的问题,请参考以下文章

在 Shopware 6 中通过 php 创建媒体

Shopware 6:bin/watch-storefront.sh 导致 chrome 出现 CORS 错误

注册后 Shopware 订户中的帐单地址

在 shopware 6 中验证后端密码

在Centos 7上安装Shopware时出错

Composer 更新 - 无法在 http://packagist.org 中加载软件包 shopware/shopware: