Команда doctrine:fixtures:load
Команда doctrine:fixtures:load наполняет базу данных тестовыми данными, которые описаны в классах-фикстурах. Она полезна при разработке и тестировании, когда нужно быстро получить набор записей в таблицах. Команда очищает таблицы перед вставкой, если не указан флаг --append, и поддерживает выбор конкретных групп фикстур.
Синтаксис
php bin/console doctrine:fixtures:load [options]
Опции
| Опция | Описание |
|---|---|
--append |
Добавляет данные к существующим, не очищая таблицы |
--group=GROUP |
Загружает только фикстуры указанной группы |
--em=EM |
Указывает имя менеджера сущностей |
--purge-with-truncate |
Очищает таблицы через TRUNCATE вместо DELETE |
Пример
Давайте создадим класс-фикстуру для сущности Article:
<?php
namespace AppDataFixtures;
use AppEntityArticle;
use DoctrineBundleFixturesBundleFixturesFixture;
use DoctrinePersistenceObjectManager;
class AppFixtures extends Fixture
{
public function load(ObjectManager $manager): void
{
for ($i = 1; $i <= 3; $i++) {
$article = new Article();
$article->setTitle('article ' . $i);
$article->setText('abcde');
$article->setCreatedAt(new DateTime());
$manager->persist($article);
}
$manager->flush();
}
}
?>
Пример
Теперь загрузим фикстуры в базу данных:
php bin/console doctrine:fixtures:load
Результат выполнения команды:
Careful, database will be purged. Do you want to continue? (yes/no) [no]:
> yes
> purging database
> loading AppDataFixturesAppFixtures
Пример
Давайте загрузим фикстуры без подтверждения и без очистки таблиц:
php bin/console doctrine:fixtures:load --append --no-interaction
Результат выполнения команды:
> loading AppDataFixturesAppFixtures
Смотрите также
-
команда
doctrine:database:create,
которая создаёт базу данных -
команда
doctrine:schema:update,
которая обновляет схему базы данных -
команда
doctrine:migrations:migrate,
которая применяет миграции -
команда
make:entity,
которая создаёт сущность