РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1218 of 1361 menu

Команда doctrine:schema:update

Команда doctrine:schema:update сравнивает текущее состояние базы данных с маппингом сущностей Doctrine и генерирует SQL-запросы для приведения схемы в соответствие. Первым параметром передаётся обязательное действие: --dump-sql для вывода запросов или --force для их выполнения. Без одного из этих флагов команда не выполнит никаких изменений.

Синтаксис

php bin/console doctrine:schema:update [--dump-sql] [--force] [--complete]

Пример

Давайте создадим сущность Article с полем title:

<?php namespace AppEntity; use DoctrineORMMapping as ORM; #[ORMEntity] #[ORMTable(name: 'article')] class Article { #[ORMId] #[ORMGeneratedValue] #[ORMColumn(type: 'integer')] private ?int $id = null; #[ORMColumn(type: 'string', length: 255)] private string $title; public function getId(): ?int { return $this->id; } public function getTitle(): string { return $this->title; } public function setTitle(string $title): self { $this->title = $title; return $this; } } ?>

Теперь посмотрим, какие SQL-запросы сгенерирует команда без применения изменений:

php bin/console doctrine:schema:update --dump-sql

Результат выполнения команды:

CREATE TABLE article (id INT AUTO_INCREMENT NOT NULL, title VARCHAR(255) NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB

Пример

Давайте применим изменения к базе данных с помощью флага --force:

php bin/console doctrine:schema:update --force

Результат выполнения команды:

Updating database schema... Database schema updated successfully! "1" query was executed

Пример

Давайте добавим в сущность новое поле text и повторим обновление:

<?php namespace AppEntity; use DoctrineORMMapping as ORM; #[ORMEntity] #[ORMTable(name: 'article')] class Article { #[ORMId] #[ORMGeneratedValue] #[ORMColumn(type: 'integer')] private ?int $id = null; #[ORMColumn(type: 'string', length: 255)] private string $title; #[ORMColumn(type: 'text', nullable: true)] private ?string $text = null; public function getId(): ?int { return $this->id; } public function getTitle(): string { return $this->title; } public function setTitle(string $title): self { $this->title = $title; return $this; } public function getText(): ?string { return $this->text; } public function setText(?string $text): self { $this->text = $text; return $this; } } ?>

Теперь выполним обновление схемы:

php bin/console doctrine:schema:update --force

Результат выполнения команды:

Updating database schema... Database schema updated successfully! "1" query was executed

Команда сгенерировала и выполнила запрос ALTER TABLE article ADD text LONGTEXT DEFAULT NULL.

Смотрите также

Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить