Php Symfony2:未使用更改的元数据更新数据库架构和实体

Php Symfony2:未使用更改的元数据更新数据库架构和实体,php,symfony,doctrine,doctrine-orm,yaml,Php,Symfony,Doctrine,Doctrine Orm,Yaml,我在更新Symfony2中的架构时遇到问题 我已经使用doctrine将一个数据库导入到Symfony2中,并在YML中创建了所有ORM文件 我已经从这个元数据创建了所有的实体,它工作得很好,但是如果我想使用orm.yml文件更改数据库模式,它不会更新我的数据库,甚至在我重新生成实体时也不会更新它们 导入在中创建了orm.yml文件 /src/{name}/{my}bundle/Resources/config/doctrine/metadata/orm/{table}.orm.yml 它创建时

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

我已经使用doctrine将一个数据库导入到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
因此,我:

以及:

我可以一次又一次地这样做,同样的查询出现,我执行它,它告诉我它已经完成了,但它再次表明它需要再次完成

然后我转到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
我也尝试过使用doctrinEmperationsBundle,同样的查询显示需要完成。我迁移;它表示查询已完成,当我再次使用它时,会显示相同的查询


有人知道这是怎么发生的吗?我无法理解这一点,因此非常感谢您的帮助。

如上所述,请确保您的Symfony2不会尝试使用注释而不是yaml来设置数据库

我也有同样的问题

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

因此,这个新捆绑包中的所有实体从未使用
php应用程序/控制台原则:schema:update--dump sql导出

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