Миграции доктрины: несколько схем с одинаковым именем таблицы
Я работаю над интеграцией 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()
,