php文件中的Doctrine配置未更新

时间:2014-07-15 09:38:21

标签: symfony doctrine

我有一个运行一些Symfony控制台命令的cron作业。它最近停止正常工作。现在,当我自己登录终端并运行命令时,看起来变量的先前值保存在某个缓存中并且不会刷新。我的学说配置加载了一个php文件。

app / config / config.yml(第一行)

imports:
    - { resource: database.php }

应用程序/配置/ database.php中

<?php
$container->setParameter('database_driver', 'oci8');
$container->setParameter('database_host', getenv('SQL_SERVER_NAME'));
$container->setParameter('database_port', getenv('SQL_SERVER_PORT'));
$container->setParameter('database_name', getenv('SQL_ORA_SID'));
$container->setParameter('database_user', getenv('SQL_USER'));
$container->setParameter('database_password', getenv('SQL_PASSWORD'));

控制台

$ php app/console doctrine:schema:validate
[Mapping]  OK - The mapping files are correct.

  [Doctrine\DBAL\Driver\OCI8\OCI8Exception]
  ORA-24415: Missing or null username.


$ echo $SQL_USER
(some correct value)

此时,我可以确认所有变量都在shell环境中正确设置,并且没有任何doctrine命令有效。看起来配置值是从缓存中读取的,而不是每次都运行的database.php,并且该缓存是在未正确设置shell环境时设置的。所以所有的值都是空的。

config.yml的最简单修改会触发database.php的重新运行并将事情整理好。但是执行缓存:清除并不起作用。

$ touch app/config/config.yml
$ php app/console doctrine:schema:validate
[Mapping]  OK - The mapping files are correct.
[Database] FAIL - The database schema is not in sync with the current mapping file.

这是预期的行为吗?是否有命令开关强制缓存刷新?

1 个答案:

答案 0 :(得分:0)

由于devprod环境,我遇到了一些问题。运行命令时,将--env=prod添加到每个命令的末尾(如果在生产环境中运行)。否则,默认情况下将是开发环境。