有没有办法使用 Symfony 的 Doctrine 转储数据库?
我看了看,doctrine:schema:create
但它似乎做了另一项工作:它从实体制作模式。
我需要一些东西:
- 转储数据库架构
- 加载架构
- 从数据库中删除所有数据
我怎样才能用教义做到这一点?可能它有一些用于这些任务的类,我可以编写自己的命令吗?
PS我看过这个帖子,但听说它有迁移,所以这些功能应该存在。
有没有办法使用 Symfony 的 Doctrine 转储数据库?
我看了看,doctrine:schema:create
但它似乎做了另一项工作:它从实体制作模式。
我需要一些东西:
我怎样才能用教义做到这一点?可能它有一些用于这些任务的类,我可以编写自己的命令吗?
PS我看过这个帖子,但听说它有迁移,所以这些功能应该存在。
如果您想转储以进行迁移,则不是为此而建立的学说,也没有工具。如果您只需要架构而不关心数据库中的数据,您可以使用教义创建工具重新创建所有内容并挂起 --dump-sql。
php doctrine orm:schema-tool:create --dump-sql
阅读文档页面上的警告:Doctrine tools 文档页面
如果您想从 php 而不是从控制台执行此操作,您可以像这样使用它(也来自文档):
<?php
$tool = new \Doctrine\ORM\Tools\SchemaTool($em);
$classes = array(
$em->getClassMetadata('Entities\User'),
$em->getClassMetadata('Entities\Profile')
);
$tool->createSchema($classes);
对于迁移,您应该转储(可以从代码或控制台执行)并跟踪 git 或类似的内容。比您可以从带有教义的文件中导入。
如果您使用的是 mysql,则可以使用 mysqldump 实用程序。但是关于加载数据库装置,您可能应该使用DoctrineFixturesBundle。