Миграции доктрины: несколько схем с одинаковым именем таблицы

Я работаю над интеграцией Doctrine Migrations в существующий проект и в файлы миграции, всякий раз, когда я вызываю методы на Schema (например, $schema->getTables()), я получаю эту ошибку:

Executing dry run of migration up to 20180726185129 from 0

  ++ migrating 20180726185129

IN UP
Migration 20180726185129 failed during Execution. Error An exception occurred while executing 'SELECT quote_ident(r.conname) as conname, pg_catalog.pg_get_constraintdef(r.oid, true) as condef
                  FROM pg_catalog.pg_constraint r
                  WHERE r.conrelid =
                  (
                      SELECT c.oid
                      FROM pg_catalog.pg_class c, pg_catalog.pg_namespace n
                      WHERE n.nspname NOT IN ('pg_catalog', 'information_schema', 'pg_toast') AND c.relname = 'config' AND n.nspname = ANY(string_to_array((select replace(replace(setting,'"$user"',user),' ','') from pg_catalog.pg_settings where name = 'search_path'),',')) AND n.oid = c.relnamespace
                  )
                  AND r.contype = 'f'':

SQLSTATE[21000]: Cardinality violation: 7 ERROR:  more than one row returned by a subquery used as an expression

In AbstractPostgreSQLDriver.php line 91:

  An exception occurred while executing 'SELECT quote_ident(r.conname) as con  
  name, pg_catalog.pg_get_constraintdef(r.oid, true) as condef                 
                    FROM pg_catalog.pg_constraint r                            
                    WHERE r.conrelid =                                         
                    (                                                          
                        SELECT c.oid                                           
                        FROM pg_catalog.pg_class c, pg_catalog.pg_namespace n  
                        WHERE n.nspname NOT IN ('pg_catalog', 'information_sc  
  hema', 'pg_toast') AND c.relname = 'config' AND n.nspname = ANY(string_to_a  
  rray((select replace(replace(setting,'"$user"',user),' ','') from pg_catalo  
  g.pg_settings where name = 'search_path'),',')) AND n.oid = c.relnamespace   
                    )                                                          
                    AND r.contype = 'f'':                                      

  SQLSTATE[21000]: Cardinality violation: 7 ERROR:  more than one row returne  
  d by a subquery used as an expression                                        


In PDOConnection.php line 106:

  SQLSTATE[21000]: Cardinality violation: 7 ERROR:  more than one row returne  
  d by a subquery used as an expression                                        


In PDOConnection.php line 104:

  SQLSTATE[21000]: Cardinality violation: 7 ERROR:  more than one row returne  
  d by a subquery used as an expression

Я думаю, это потому, что у меня есть таблицы с именем config в двух схемах, поэтому он получает две строки. Я не уверен, как избежать этой проблемы, и нет возможности объявить схему по умолчанию в migrations.xml или migrations-db.php.

Я действительно хотел бы использовать DBAL при миграции, но, к сожалению, это не оставляет мне другого выбора, кроме как использовать this->addSql().

Вы когда-нибудь выясняли, в чем проблема? имея точно такую ​​же проблему

ralusnom 15.05.2020 16:15
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
1
228
0

Другие вопросы по теме