1

我是 symfony 和学说的新手,希望能得到一些帮助......

我正在将教义连接到 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

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

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

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 转储,更新仍然未完成。

我已经清除了所有缓存以排除这是一个问题。

欢迎任何建议!

4

1 回答 1

1

这是已知问题。检查Oracle 平台上不正确的类型映射

一些参考:

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

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

于 2013-03-25T13:53:45.880 回答