我无法在Symfony2中更新架构。
我已经使用doctrine将数据库导入Symfony2,并在YML中创建了所有ORM文件。
我已经从这个元数据中创建了所有实体并且效果很好,但如果我想使用orm.yml文件更改数据库模式,它不会更新我的数据库,甚至在重新生成它们时更新实体。< / p>
导入创建了orm.yml文件 / SRC / {名称} / {我的}束/资源/配置/教义/元数据/ ORM / {表} .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,同样的查询显示需要完成。我迁移;它表示查询已完成,当我再次使用它时,会显示相同的查询。
有人知道这是怎么回事吗?我坚持这一点,所以非常感谢任何帮助。
答案 0 :(得分:2)
根据上面的@Tomasz,确保您的Symfony2不会尝试使用注释来设置数据库而不是yaml。
答案 1 :(得分:0)
我遇到了同样的问题。
原因是 - 新创建的捆绑包尚未添加到app\config.yml
。
因此,这个新Bundle中的所有实体都从未使用php app/console doctrine:schema:update --dump-sql