在 symfony2 控制台中加载所有 Fixtures 文件

Load all Fixtures files in symfony2 console

我在 symfony2 的控制台上遇到了压力行为。我有一个本地环境,如果我执行:

php app/console doctrine:fixtures:load

purging database loading Application\Sonata\UserBundle\DataFixtures\ORM\LoadUserData loading ApplicationNewsBundle\DataFixtures\ORM\LoadAdvertisementData loading ApplicationNewsBundle\DataFixtures\ORM\LoadArticleData loading ApplicationNewsBundle\DataFixtures\ORM\LoadLiveBlogData loading ApplicationNewsBundle\DataFixtures\ORM\LoadVideoData

我将代码上传到 Heroku(相同的代码)并执行相同的命令,但我只执行了前两个固定装置:

purging database

loading Application\Sonata\UserBundle\DataFixtures\ORM\LoadUserData loading ApplicationNewsBundle\DataFixtures\ORM\LoadAdvertisementData

此时我估计是配置的问题,我也在dev环境下执行了命令,结果一样。

php app/console --env=dev doctrine:fixtures:load

我正在使用 symfony 2.6.9。

您可能遇到此行为的原因有 2 个:

  1. 远程系统上的文件权限错误

    检查用户调用 PHP 处理,否则它们可能找不到,因此不会被加载。

  2. 过时的 composer Autoloader

    如果您使用 -a / --classmap-authoritative--apcu 转储了优化的自动加载器,并且之后部署了带有新夹具 类 的新版本...新的 类 可能还不在类映射中并且不会自动加载。要解决此问题,只需按 运行 composer dump-autoload -a.

  3. 再次转储自动加载器

问题与路径有关,文件夹的名称是 DataFIxtures,I 是大写字母,在本地使用 vagrant 似乎不是问题,但是当我使用 heroku 容器时不理解此路径它不执行命令。更改名称问题已解决。