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

时间:2017-08-23 08:53:36

标签: symfony heroku console doctrine fixtures

我在symfony2的控制台上遇到了应变行为。我有一个本地的envinroment,如果我执行:

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

清除数据库   加载Application \ Sonata \ UserBundle \ DataFixtures \ ORM \ LoadUserData   加载ApplicationNewsBundle \ DataFixtures \ ORM \ LoadAdvertisementData   加载ApplicationNewsBundle \ DataFixtures \ ORM \ LoadArticleData   加载ApplicationNewsBundle \ DataFixtures \ ORM \ LoadLiveBlogData   加载ApplicationNewsBundle \ DataFixtures \ ORM \ LoadVideoData

我将代码上传到Heroku(相同的代码)并执行相同的命令,但我只执行了两个第一个灯具:

  

清除数据库

     

加载Application \ Sonata \ UserBundle \ DataFixtures \ ORM \ LoadUserData   加载ApplicationNewsBundle \ DataFixtures \ ORM \ LoadAdvertisementData

此时,我认为这与配置有关,我也在开发环境中执行了命令,但结果相同。

$args

我正在使用symfony 2.6.9。

2 个答案:

答案 0 :(得分:0)

有两个明显的原因导致您遇到此行为:

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

    检查所有夹具文件是否可被调用的用户读取 PHP进程,否则可能无法找到它们,因此无法加载。

  2. 过时的作曲家Autoloader

    如果您使用-a / --classmap-authoritative--apcu转储了优化的自动加载器,并且之后使用新的fixture类部署了新版本......新类可能不是在类图中尚未自动加载。要解决此问题,只需运行composer dump-autoload -a

  3. 再次转储自动加载器

答案 1 :(得分:0)

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