Symfony 2 Doctrine Oracle架构同步

时间:2013-03-25 13:32:29

标签: oracle symfony doctrine synchronization

我是symfony和doctrine的新手,非常感谢一些帮助...

我将doctrine连接到oracle 11g数据库。

我创建了一个包含可空日期字段的表/实体。

字段在YAML中描述

    metar_time:
        type: date
        nullable: true
        column: METAR_TIME
    taf_time:
        type: date
        nullable: true
        column: TAF_TIME
    ltaf_time:
        type: date
        nullable: true
        column: LTAF_TIME
    storage_date:
        type: date
        nullable: true
        column: STORAGE_DATE

数据库模式将字段的状态反映为可为空的日期,默认值为null。

我遇到的问题是我无法理解认识到数据库和元描述是同步的。

php app/console doctrine:schema:update --dump-sql
ALTER TABLE MET MODIFY (LTAF_TIME  DATE DEFAULT NULL, METAR_TIME  DATE DEFAULT NULL, STORAGE_DATE  DATE DEFAULT NULL, TAF_TIME  DATE DEFAULT NULL);


php app/console doctrine:schema:update --force
Updating database schema...
Database schema updated successfully! "1" queries were executed

然而,如果我再次运行sql转储,则更新仍然未完成。

我已经清除了所有缓存以将其排除为一个问题。

欢迎任何建议!

1 个答案:

答案 0 :(得分:1)

这是已知问题。查看Incorrect type mapping on Oracle Platform

一些参考:

  

问题是Oracle有一个“DATE”类型,实际上是DATETIME。这就是我们将它映射到Doctrine的Datetime类型的原因。

     

作为解决方法,您可以使用以下方法自行设置此信息:   $ conn-> getDatabasePlatform() - > registerDoctrineTypeMapping('date','date');   请注意,这是所有列的全局更改。如果您将DateTimes映射到TIMESTAMP字段,那么您可以使用它。