Symfony2更新的实体适用于dev,但不适用于prod

时间:2014-09-17 08:53:33

标签: symfony

我最近不得不在我的奏鸣曲应用程序中为Product添加新的'field',所以我在实体描述中添加了它......

/**
 * @var integer $deliveryTime
 */
protected $deliveryTime;

/**
 * Get deliveryTime
 *
 * @return integer $deliveryTime
 */
public function getDeliveryTime()
{
    return $this->deliveryTime;
}

/**
 * @param int $deliveryTime
 */
public function setDeliveryTime($deliveryTime)
{
    $this->deliveryTime = $deliveryTime;
}
ORM中的

<field name="deliveryTime" column="delivery_time"  type="integer"  nullable="true" />
在ProductProvider中

$formMapper->add('deliveryTime', 'integer')

以及所有观点

它完全适用于我的本地环境但是当我将它移动到生产时它不起作用。 有趣的是,如果我在我的生产服务器上访问开发环境,它会显示产品的交付时间,但是在prod环境中却没有。

我使用--env = prod选项清除了缓存,甚至从dev和prod文件夹中物理删除了缓存文件,但它无济于事。

数据库不是问题,因为如果原因是数据库,它将无法在dev env上运行。

我还应该做些什么让它在prod env上运行? (我可以在没有工具栏的情况下切换到dev env,但这不是'好'的方法:)

更新:@ moonwave99是的我更新了数据库,app_prod.log中没有相关内容

什么不适用于prod并适用于dev: - 在产品视图中显示数据库中产品的交货时间 - 通过管理面板显示/更新交货时间

3 个答案:

答案 0 :(得分:3)

这很奇怪 - 我在生产服务器上重新启动了apache服务,现在它可以工作了。

答案 1 :(得分:1)

尝试运行一些命令,

    php app/console doctrine:schema:update --force
    php app/console cache:clear
    php app/console cache:clear --env=prod --no-debug

如果失败则重新推送您的代码

并重新运行

希望有所帮助

答案 2 :(得分:0)

您应该重新加载APC。 Prod环境在该系统中保存了doctrine缓存。 如果你使用PHP + Apache - 重启apache 如果你使用PHP-FPM - 重启php-fpm。