我有一些问题。我在symfony 1.4上工作。我想在我的表中添加一个新列,并在php getter和setter中生成以使用它。
所以在我的shema.yml中,我在表格中添加了这样的列:
version : {type: integer}
userName_canonical : {type: varchar(255)}
email_canonical : {type: varchar(255)}
qualifications: {type: array}
qualification_autre: {type: string}
promo: {type: boolean, default: 0}
next_request_at: {type: date, default: null}<-----
但我到处搜索,我不知道如何修改我的实体并在我的数据库中创建此列。有人知道哪个命令用于在symfony 1.4中修改我的实体?
提前感谢
答案 0 :(得分:1)
根据Symfony 1.4 documentation,您需要在修改模式文件后运行这些命令:
php symfony doctrine:build --model
php symfony doctrine:build --sql
php symfony doctrine:insert-sql
在运行这些命令之前,请阅读“The ORM”标题下的this documentation page,以确保这些命令符合您的要求。
然后可以通过此命令生成Doctrine实体
php symfony doctrine:build --model
请确保在执行此操作之前备份任何现有工作,因为它可能会覆盖对现有类的任何更改。
答案 1 :(得分:0)
在创建新模型类(使用doctrine:build
命令)之前,您应该创建迁移文件。
对我来说,这个过程通常是:
./symfony doctrine:generate-migrations-diff
这应该在lib/migrations/doctrine
中创建一个新文件,其中包含添加任何新列的命令。
./symfony doctrine:build --all-classes
这将创建或更新lib/{model,form,filter}/doctrine/base
中的类以包含新列。
./symfony doctrine:migrate
这实际上是在进行迁移。否则,由于缺少列,您将收到SQL错误。迁移显然也需要在生产上进行;我们将其作为我们每次运行的部署脚本的一部分。
如果您已经构建了新类,则需要在上述过程的开头添加几个步骤:
./symfony doctrine:build --all-classes
generate-migrations-diff
步骤。