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