使用Doctrine转储数据库

时间:2013-09-17 07:20:25

标签: php symfony doctrine-orm doctrine

有没有办法从Symfony使用Doctrine转储数据库?

我查看了doctrine:schema:create,但它似乎做了另一项工作:它从实体制作架构。

我需要一些东西:

  • dump database schema
  • 加载架构
  • 从数据库中删除所有数据

如何使用Doctrine进行操作?可能它有一些用于这些任务的类,我可以编写自己的命令吗?

P.S。我见过this thread,但我听说它有迁移,所以这些功能应该存在。

2 个答案:

答案 0 :(得分:2)

如果要转储以进行迁移,则不会为此构建doctrine,也没有工具。 如果您只需要架构并且不关心数据库中的数据,您可以使用doctrine创建工具重新创建所有内容并挂起--dump-sql。

php doctrine orm:schema-tool:create --dump-sql

阅读文档页面上的警告:Doctrine tools docu page

如果你想从php而不是从控制台这样做,你可以像这样使用它(也来自文档):

<?php
$tool = new \Doctrine\ORM\Tools\SchemaTool($em);
$classes = array(
  $em->getClassMetadata('Entities\User'),
  $em->getClassMetadata('Entities\Profile')
);
$tool->createSchema($classes);

对于迁移,您应该转储(可以从代码或控制台执行)并跟踪git或类似内容的内容。你可以从带有学说的文件中导入。

答案 1 :(得分:1)

如果您使用的是mysql,则可以使用mysqldump实用程序。但是关于加载数据库装置,您应该使用DoctrineFixturesBundle