php – Symfony2:数据库模式和实体未使用更改的元数据进行更新

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – Symfony2:数据库模式和实体未使用更改的元数据进行更新脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我在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

所以我:

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.

脚本宝典总结

以上是脚本宝典为你收集整理的php – Symfony2:数据库模式和实体未使用更改的元数据进行更新全部内容,希望文章能够帮你解决php – Symfony2:数据库模式和实体未使用更改的元数据进行更新所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。