Symfony 2:更新未反映在phpadmin中的表架构

Symfony 2:更新未反映在phpadmin中的表架构,symfony,doctrine-orm,Symfony,Doctrine Orm,我有一些关于Symfony 2的初学者问题,我无法从前面的问题中得到清晰的答案,可能是因为它们是真正的基本问题 当您从命令行创建新的symfony2项目并指定数据库名称和密码时,这是指自动创建您可以在phpmyadmin中看到的数据库,还是手动创建数据库 在此基础上,如果创建了多个实体,然后使用 doctrine:schema:update 应在projects parameters.yml文件中指定的数据库中自动创建指定的表 我已经执行了doctrine:schema:update-for

我有一些关于Symfony 2的初学者问题,我无法从前面的问题中得到清晰的答案,可能是因为它们是真正的基本问题

当您从命令行创建新的symfony2项目并指定数据库名称和密码时,这是指自动创建您可以在phpmyadmin中看到的数据库,还是手动创建数据库

在此基础上,如果创建了多个实体,然后使用

 doctrine:schema:update
应在projects 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$ 
很明显,条令认为它是同步的——但在phpmyadmin中没有表格


很明显,这是一个完整的初学者资料……但我非常感谢Symfony 2老手在这方面的指导。

回答您的问题:

不,创建新的Symfony项目不会创建您的数据库或连接到它的用户。您仍然需要这样做,我建议您为您的应用程序创建一个具有适当权限的专用用户。您需要使用具有管理权限的数据库用户来执行此操作。出于安全原因,最好不要在应用程序中使用数据库管理员帐户。要指示条令在设置了db用户和连接参数后创建数据库,可以运行php app/console条令:database:create console命令

是的,运行条令:模式:更新控制台命令将生成您的数据库实体,但它不会/无法创建您的数据库。您还可以使用-force选项应用自上次更新以来所做的更改。这些更新仍将受到您定义的任何列约束的约束,因此,例如,如果您将现有的可为null的列更改为NOTNULL,那么如果已经存在具有null值的记录,则会出现错误


希望能有所帮助。

非常感谢您的评论。我所面临的问题是,我正在学习一些关于Symfony2的教程,它出现在教程中,当从命令行创建一个新项目,并指定所有参数时,包括数据库名称等,然后在MySQL中创建数据库。从您的回答来看,情况并非如此,当然,当我创建一个新项目时,我必须自己创建数据库。真正困扰我的是,在我创建实体之后,如果我的“条令:模式:更新”在phpmyadmin中没有发生任何事情-没有创建任何表………我得到的印象是,我的项目没有与MySQL“通信”,这反映在phpmyadmin中缺少更改。它阻碍了我的进步。如果你能理解为什么会这样,也许我会很感兴趣。当然,应用程序可能没有与数据库通信。如果配置参数错误,或者数据库所在的服务器拒绝连接尝试(例如:阻止端口上的请求),则可能会发生这种情况。最好的诊断方法是查看日志文件。Symfony在app/logs目录中有日志文件。linux系统上的Apache服务器日志文件通常位于/var/log/httpd中,mysql日志文件通常位于/var/log/。从那里开始,否则你只能在黑暗中摸索。