我有一些关于Symfony 2的初学者问题,我无法从之前的问题中得到明确的答案(也许是因为它们是真正基本的)
当您从命令行创建一个新的symfony2项目并具体指定数据库名称和密码时,这是否意味着自动创建数据库(您可以在phpmyadmin中看到)或者手动执行此操作。
在此之后,如果创建了多个实体,然后使用
doctrine:schema:update
是否应在项目“parameters.yml”文件中指定的数据库中自动创建指定的表。
我已经执行了“doctrine:schema:update --force”然后给了我
Updating database schema...
Database schema updated successfully! "2" queries were executed
但是没有创建表格。所以我再次尝试,看看这个消息会是什么......
unknown-ec:35:86:4d:41:5e:symfony simonalice$ php app/console doctrine:schema:update --force
Nothing to update - your database is already in sync with the current entity metadata.
unknown-ec:35:86:4d:41:5e:symfony simonalice$
很明显,Doctrine认为它同步 - 但phpmyadmin中没有表格。
显然已经完成了初学者的工作....但我会感谢Symfony 2老将对此的一些指导。
答案 0 :(得分:0)
回答你的问题:
不,创建新的Symfony项目不会创建数据库(或连接到它的用户)。您仍然需要这样做,我建议您使用适当的权限为您的应用程序创建一个专用用户。您需要使用具有管理权限的数据库用户才能执行此操作。出于安全原因,最好不对您的应用程序使用数据库管理员帐户。要指示doctrine创建数据库(一旦设置了db用户和连接参数),就可以运行php app/console doctrine:database:create
控制台命令。
是的,运行doctrine:schema:update
控制台命令将生成您的数据库实体,但它不会/无法创建您的数据库。您还可以使用--force
选项应用自上次更新以来所做的更改。这些更新仍将受到您定义的任何列约束的约束,因此,例如,如果您将现有的可空列更改为not null
,则如果已存在包含空值的记录,则会收到错误。
希望有所帮助。