2013-07-25 5 views
-1

Когда у меня есть Table ссылки и я называю renameColumn() на нем, я получаю следующую пару ошибок:Переименование столбца в миграции сценарии в Doctrine2

Миграция 20130725141653 Ошибку выполнения. Таблица ошибок # renameColumn() была удалена, потому что она уменьшает и воссоздает столбец. Существует никаких исправлений, потому что diff diff схемы не может надежно определить, был ли переименован столбец или был создан один столбец, а другой -.

[Учение \ DBAL \ DBALException]

Таблица № renameColumn() была удалена, так как она падает и воссоздает колонку вместо этого. Существует никаких исправлений, потому что diff diff схемы не может надежно определить, был ли переименован столбец или был создан один столбец, а другой -.

(выполняется с помощью doctrine migrations:migrate --dry-run)

Который имеет смысл ... для программы дифф.

Я пишу миграцию. Я знаю, что мне нужен переименованный столбец (сохранение данных). Есть ли какой-либо чистый метод Doctrine (я не хочу писать сырой запрос), чтобы добиться этого?

ответ

-1

«diff», о котором идет речь, это различие между вашей оригинальной схемой и обновленной схемой. Именно так Doctrine генерирует операторы SQL - путем сравнения текущей схемы с модифицированной схемой.

Там нет никакого способа для Doctrine достоверно выяснить, что someColumn$originalTable в настоящее время в $modifiedTablesomeRenamedColumn (простите за плохой psuedocode), и поэтому функциональность была удалена.

+0

Это не ответ. Это переформулировка преамбулы к вопросу и игнорирует фактический вопрос, который находится в последнем абзаце. Поскольку я тоже хочу ответить на этот вопрос (среди прочих), я нахожу этот неприятный отклик. -1. –

+0

Простите меня, ответ: Нет, нет способа использовать доктрину для переименования столбца без ручной записи инструкции. Мой предыдущий ответ был объяснением, как мне объяснили, в/why/doctrine запрещает это использование - извинения за неясность. –

Смежные вопросы