【问题标题】:Symfony2: Database schema and entities not updating with changed metadataSymfony2:数据库模式和实体未使用更改的元数据进行更新
【发布时间】:2012-05-18 20:10:46
【问题描述】:

我在 Symfony2 中更新架构时遇到问题。

我使用教义将一个数据库导入 Symfony2,并在 YML 中创建了所有 ORM 文件。

我已经从这个元数据创建了所有实体,效果很好,但是如果我想使用 orm.yml 文件更改数据库架构,它不会更新我的数据库,甚至在我重新生成实体时也不会更新它们。

导入创建了 orm.yml 文件 /src/{name}/{my}bundle/Resources/config/doctrine/metadata/orm/{table}.orm.yml

它的创建没有错误。

当我这样做时:

php app/console doctrine:schema:update --dump-sql

它显示:

ALTER TABLE accounttypes CHANGE description description VARCHAR(45) NOT NULL

所以我:

php app/console doctrine:schema:update --force

还有:

Updating database schema...
Database schema updated successfully! "1" queries were executed

我可以一遍又一遍地执行此操作,然后出现相同的查询并执行它,它告诉我它已完成,但它再次表明它需要再次完成。

然后,我访问了 orm.yml 文件并彻底更改了它们,但除了我执行此操作时始终存在的查询之外,没有任何新查询出现。

文件 AccountTypes.orm.yml

Accounttypes:
  type: entity
  table: accounttypes
  fields:
    description:
      id: true
      type: string
      length: 45
      fixed: false
      nullable: false
      generator:
        strategy: IDENTITY
  lifecycleCallbacks: {  }

改成这样:

Accounttypes:
  type: entity
  table: accounttypes
  id:
    id:
      type: integer
      generator: { strategy: AUTO }
  fields:
    description:
      id: true
      type: string
      length: 50
  lifecycleCallbacks: {  }

它仍然告诉我我需要:

ALTER TABLE accounttypes CHANGE description description VARCHAR(45) NOT NULL

我也尝试过使用 DoctrineMigrationsBundle 并且显示需要完成相同的查询。我迁移;它说查询已完成,当我再次使用它时,会出现相同的查询。

有人知道这是怎么回事吗?我被困在这个问题上,所以非常感谢任何帮助。

【问题讨论】:

    标签: php symfony doctrine doctrine-orm yaml


    【解决方案1】:

    根据上面的@Tomasz,请确保您的 Symfony2 不会尝试使用注释来设置数据库而不是 yaml。

    【讨论】:

      【解决方案2】:

      我遇到了同样的问题。

      原因是 - 尚未将新创建的捆绑包添加到 app\config.yml。

      因此,这个新 Bundle 中的所有实体从未使用 php app/console doctrine:schema:update --dump-sql 导出

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-11-21
        • 1970-01-01
        • 1970-01-01
        • 2015-09-21
        • 1970-01-01
        • 1970-01-01
        • 2012-12-31
        相关资源
        最近更新 更多