这可能是一个愚蠢的问题,但我对如何解决这个问题毫无头绪。
我已经获得了实体" MailEntity" 。但是,我的数据库不包含与此实体对应的表。
我想知道如何生成与我创建的实体对应的表。我一直在寻找这个,但无论我在谷歌上搜索什么,似乎都会不断出现相同的结果。
我已经知道我可以通过php app/console doctrine:schema:update
实现我想要的目标。添加--dump-sql
参数将在架构实际更新之前转储sql。
但是,我想为单个Bundle做这个。单个实体会更好。我只是想从MailEntity
创建一个表而不更改数据库中的任何其他内容。
答案 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自己同步你的数据库。这种技巧可能会导致数据库出错。