postgresql doctrine Код в миграции $this->addSql(CREATE SCHEMA public) - Как его убрать
Primary tabs
Проблема
Генератор миграции добавляет в down() код:
$this->addSql('CREATE SCHEMA public');
-- который вообще говоря приводит к ошибке при откате (т.е. эту схему никто и не удалял)
Решение
В добавьте класс (пространство имен может быть любым):
<?php namespace App\Symfony\Patch; use Doctrine\Common\EventSubscriber; use Doctrine\ORM\Tools\Event\GenerateSchemaEventArgs; /** * Выключаем добавление беcполезной команды в down миграции */ class MigrationEventSubscriber implements EventSubscriber { public function getSubscribedEvents() { return array( 'postGenerateSchema', ); } public function postGenerateSchema(GenerateSchemaEventArgs $Args) { $Schema = $Args->getSchema(); if (! $Schema->hasNamespace('public')) { $Schema->createNamespace('public'); } } }
И зарегистрируйте его в конфиге:
# app/config/services.yml services: doctrineMigrationDiffListener: class: App\Symfony\Patch\MigrationEventSubscriber tags: - { name: doctrine.event_subscriber, connection: default }
Источник решения: https://github.com/doctrine/dbal/issues/...
- Log in to post comments
- 2694 reads
BoomerOK
Sun, 12/03/2023 - 22:28
Permalink
Как сделать с аннотациями