[英]Symfony2: Database schema and entities not updating with changed metadata
我无法在Symfony2中更新架构。
我已经使用理论将数据库导入到Symfony2中,并在YML中创建了所有ORM文件。
我已经从该元数据创建了所有实体,并且效果很好,但是如果我想使用orm.yml文件更改数据库架构,那么在重新生成实体时它不会更新数据库,甚至不会更新实体。
导入在/src/{name}/{my}bundle/Resources/config/doctrine/metadata/orm/{table}.orm.yml中创建了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,并且相同的查询显示需要完成。 我迁移; 它说查询已完成,当我再次使用它时,将显示相同的查询。
有人知道这是怎么回事吗? 我对此感到困惑,因此不胜感激。
按照上面的@Tomasz ,确保您的Symfony2不会尝试使用批注而不是yaml来设置数据库。
我有同样的问题。
原因是-新创建的捆绑包尚未添加到app\\config.yml
。
因此,这个新捆绑包中的所有实体从未与php app/console doctrine:schema:update --dump-sql
一起导出php app/console doctrine:schema:update --dump-sql
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.