1

我有使用 Doctrine ORM 和 ZF2 生成的实体类。

我改变了一个表结构,我想更新一个实体类,所以我试图重新生成实体类,但它不起作用。

我使用了以下代码:

vendor/doctrine/doctrine-module/bin/doctrine-module orm:convert-mapping --namespace="Album\Entity\" --force --from-database annotation ./module/Album/src/clear

我得到了错误:

[Doctrine\ORM\Mapping\MappingException]
"Album\Entity\TestRun" 中的属性 "status" 已声明,但只能声明一次
orm:convert-mapping [--filter="..."] [- -force] [--from-database] [--extend[="..."]] [--num-spaces[="..."]] [--namespace[="..."] ] 键入目标路径

我想为特定表重新生成实体类

4

2 回答 2

0

如果您更改实体文件的结构,一个简单的 \vendor\bin\doctrine-module orm:schema-tool:update --force将根据您的实体定义更改表。

如果您仍想重新创建表,只需从 mysql 中删除表并运行更新命令。您可能还剩下一些缓存文件,因此清除这些文件也可能是个好主意。

您可以像这样清除完整的缓存:

\vendor\bin\doctrine-module orm:clear-cache:query 
\vendor\bin\doctrine-module orm:clear-cache:result
\vendor\bin\doctrine-module orm:clear-cache:metadata
于 2014-01-14T08:26:38.697 回答
0

如上所述,这可能是一种不好的做法,但是我使用以下命令来实现您所询问的结果:

vendor\bin\doctrine-module orm:convert-mapping --filter='Evaluation' --namespace='MyModule\Entity\\' --force --from-database annotation ./module/MyModule/src/   

和另一个生成 getter 和 setter 的命令:

vendor\bin\doctrine-module orm:generate-entities --filter='Evaluation' ./module/MyModule/src/ --generate-annotations=true
于 2014-11-13T23:22:28.217 回答