如何在Symfony 1.4中通过命令行为实体添加字段?
在Symfony 1.4中添加字段并更新模型与数据库的操作指南
嘿,我之前在Symfony 1.4项目里频繁做这类操作,给你梳理下具体步骤——毕竟你已经改好schema.yml了,剩下的就是让框架帮你生成代码和更新数据库就行,分两种情况(取决于你用的是Propel还是Doctrine ORM,Symfony 1.4默认是Propel,但不少项目也会用Doctrine):
如果你用的是Propel ORM
生成模型类(自动添加getter/setter)
执行这条命令,Symfony会根据你修改后的schema.yml重新生成对应的模型文件,新字段的getXXX()和setXXX()方法都会自动生成:symfony propel:build-model生成的文件在
lib/model/目录下,你可以打开对应表的类文件,就能看到新增的方法啦。生成数据库迁移文件(安全更新数据库)
为了避免直接修改数据库带来的风险,推荐用迁移脚本:symfony propel:build-migration这个命令会对比当前schema和数据库的结构差异,生成一个迁移脚本放在
lib/migration/目录下。执行迁移,把新字段添加到数据库
最后运行迁移脚本,完成数据库的更新:symfony propel:migrate
如果你用的是Doctrine ORM
生成模型类(自动添加getter/setter)
执行这条命令更新模型类,新字段的访问方法会自动生成:symfony doctrine:build-model模型文件同样在
lib/model/目录下。更新数据库结构
Doctrine可以一步完成迁移生成和执行:symfony doctrine:migrate如果你想先看迁移脚本再执行,也可以分开操作:
# 生成迁移差异文件 symfony doctrine:generate-migrations-diff # 执行迁移 symfony doctrine:migrate
一些额外提示
- 如果是开发环境,想快速更新数据库(不考虑数据备份的话),可以用更直接的命令:
- Propel:
symfony propel:build-sql生成SQL,再symfony propel:insert-sql执行(注意!这个会重置数据库,只适合初期开发) - Doctrine:
symfony doctrine:update-schema直接更新数据库结构
- Propel:
- 生成模型后,记得清除缓存,避免旧的类缓存影响功能:
symfony cache:clear
内容的提问来源于stack exchange,提问作者Arendelle
相关产品推荐
相关产品推荐

