如何从symfony2中的实体生成表?

时间:2015-09-07 09:05:24

标签: php symfony doctrine-orm

这可能是一个愚蠢的问题,但我对如何解决这个问题毫无头绪。

我已经获得了实体" MailEntity" 。但是,我的数据库不包含与此实体对应的表。

问题

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

更新

我已经知道我可以通过php app/console doctrine:schema:update实现我想要的目标。添加--dump-sql参数将在架构实际更新之前转储sql。

但是,我想为单个Bundle做这个。单个实体会更好。我只是想从MailEntity创建一个表而不更改数据库中的任何其他内容。

2 个答案:

答案 0 :(得分:5)

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

app/console doctrine:schema:update

这应该列出了创建表时需要运行的所有查询。运行带有--force标志的命令来执行它们。它记录在案here

可能值得查看doctrine migrations bundle,它允许您 diff 当前数据库状态与实体,并根据diff see the docs

答案 1 :(得分:1)

您可以使用php app/console doctrine:schema:update

此命令将告诉doctrine执行必要的SQL,以便数据库反映您的学说架构。添加--force以实际执行查询。

如果要先检查生成的SQL命令,可以使用--dump-sql。它将打印将使用--force执行的内容。

Related documentation you may read for further information

编辑:如果要为单个实体创建表,最简单的方法是使用--dump-sql转储生成的sql,然后提取负责MailEntity表创建的行,然后手动执行。

我不建议这样做,你应该让Doctrine自己同步你的数据库。这种技巧可能会导致数据库出错。