我在 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 并且显示需要完成相同的查询。我迁移;它说查询已完成,当我再次使用它时,会出现相同的查询。
有人知道这是怎么发生的吗?我坚持这一点,所以非常感谢任何帮助。