2013-09-17 4 views
0

Есть ли способ сбросить базу данных с помощью Doctrine из Symfony?Дамп базы данных с использованием Doctrine

Я посмотрел на doctrine:schema:create, но, похоже, выполняет другую работу: он создает схему из объектов.

мне нужно что-то:

  • схема базы данных дампа
  • нагрузка схема
  • удалить все данные из базы данных

Как я могу это сделать с доктриной? Может быть, у него есть несколько классов для этих задач, и я могу написать собственные команды?

P.S. Я видел this thread, но я слышал, что он имеет миграции, поэтому эти функции должны существовать.

+0

Что вы пытаетесь достичь? –

+0

@ ElnurAbdurrakhimov TDD с тестовой базой данных и светильниками. – DmitryR

ответ

2

Если вы хотите сбросить миграцию, учение для этого не построено, и нет инструмента. Если вам просто нужна схема и вы не заботитесь о данных в своей базе данных, вы можете просто воссоздать все с помощью инструмента создания доктрины и повесить -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

У меня есть объекты только для части базы данных. Поэтому я не могу генерировать полную схему, используя этот метод, правильно? – DmitryR

+0

Не так далеко, насколько я знаю .. – BogdanM

1

Если вы используете mysql, вы можете использовать утилиту mysqldump. Но в отношении загрузки баз данных вы должны, вероятно, использовать DoctrineFixturesBundle.

+0

Это не решение: некоторые из запросов используют DBAL. – DmitryR

Смежные вопросы