如何在Symfony2中从实体生成表格?

5

这可能是一个愚蠢的问题,但是我不知道如何解决。

我有实体"MailEntity"。然而,我的数据库中尚未包含与此实体对应的表。

问题

我想知道如何生成与我创建的实体相对应的表。我一直在寻找解决方法,但是无论我在谷歌上搜索什么,都会不断出现相同的结果。

更新

我知道我可以通过执行php app/console doctrine:schema:update来实现我的目标。添加--dump-sql参数将在实际更新模式之前转储sql。

然而,我想只为单个Bundle执行此操作。仅针对单个实体执行此操作将更好。我只想从MailEntity创建一个表,而不更改数据库中的其他内容。


这个命令是:php app/console doctrine:generate:entity ? - ka_lin
@KA_lin 实体已经生成。我需要Symfony完成CREATE TABLE (...)这部分。 - Peter
2个回答

6

如果您已经准备好实体类,只需运行:

app/console doctrine:schema:update

这应该列出Doctrine需要运行以创建表的所有查询。使用--force标志运行命令以执行它们。文档在这里记录。
可能值得看一下Doctrine迁移捆绑包,它允许您将当前DB状态与实体进行差异比较,并基于该差异生成迁移脚本请参阅文档

1
你可以使用 php app/console doctrine:schema:update 命令。这个命令会告诉Doctrine执行必要的SQL语句,使你的数据库反映出你的Doctrine模式。添加--force可以实际执行查询。
如果你想先检查生成的SQL语句,可以使用--dump-sql。它将打印出会被--force执行的内容。 相关文档可供进一步阅读 编辑: 如果你想为单个实体创建表格,最简单的方法是使用--dump-sql来转储生成的SQL语句,然后提取负责创建你的MailEntity表格的行,然后手动执行它。
虽然我不建议这样做,你应该让Doctrine自己同步你的数据库。这种技巧可能会导致你的数据库出现错误。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接