我有一些问题。我在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中修改我的实体?
预先感谢
根据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
确保在执行此操作之前备份任何现有工作,因为它可能会覆盖对现有类的任何更改。
在创建新模型类(使用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
上面的步骤。