Рубрики
Uncategorized

Обновление миграции доктрины Symfony до версии 3

Введение Прежде чем мы начнем, вам следует взглянуть на одну из моих предыдущих статей “Как т… С тегами php, symfony, doctrine.

Вступление

Прежде чем мы начнем, вам следует взглянуть на одну из моих предыдущих статей “Как решить проблему с ошибкой обновления пакета Symfony 5 и Doctrine Migrations 3: Нераспознанные параметры “имя_директора, пространство имен” в разделе “doctrine_migrations”. “В этой статье рассматривается базовый случай, когда у вас нет никаких миграций, и технически все работало нормально — до тех пор, пока фактические миграции не потребуется перенести в новую версию пакета Doctrine.

В этой статье рассказывается о том, что необходимо сделать для обновления существующих миграций.

Обновление для существующих миграций

Если вы следовали первой статье, вы столкнетесь с дальнейшими проблемами после обновления, если у вас есть миграции, которые уже были выполнены до обновления пакета Doctrine. Если вы следовали первой статье, вы столкнетесь с дальнейшими проблемами после обновления, если у вас есть миграции, которые уже были выполнены до обновления пакета Doctrine. Чтобы устранить неполадки, выполните следующие действия:

Если вы следовали первой статье, вы столкнетесь с дальнейшими проблемами после обновления, если у вас есть миграции, которые уже были выполнены до обновления пакета Doctrine. Чтобы устранить неполадки, убедитесь, что загружена правильная среда, выполните следующие действия:

Если вы следовали первой статье, вы столкнетесь с дальнейшими проблемами после обновления, если у вас есть миграции, которые уже были выполнены до обновления пакета Doctrine. Чтобы устранить проблемы, убедитесь, что загружена правильная среда, выполните следующие действия: Это было описано в оригинальной статье, но давайте убедимся, что это сделано, прежде чем продолжить. Если вы следовали первой статье, вы столкнетесь с дальнейшими проблемами после обновления, если у вас есть миграции, которые уже были выполнены до обновления пакета Doctrine. Чтобы устранить проблемы, убедитесь, что загружена правильная среда, выполнив следующие действия: Это было описано в оригинальной статье, но давайте убедимся, что это сделано перед обработкой. Если у вас была какая-либо другая среда, установленная в файле .env , обновление может перезаписать ее и установить среду обратно в dev ing. . Если вы следовали первой статье, вы столкнетесь с дальнейшими проблемами после обновления, если у вас есть миграции, которые уже были выполнены до обновления пакета Doctrine. Чтобы устранить проблемы, убедитесь, что загружена правильная среда, выполните следующие действия: Это было описано в оригинальной статье, но давайте убедимся, что это сделано перед обработкой. Если у вас была какая-либо другая среда, установленная в файле .env , убедитесь, что вы вернули ее в правильную среду (в моем случае она была

Если вы следовали первой статье, вы столкнетесь с дальнейшими проблемами после обновления, если у вас есть миграции, которые уже были выполнены до обновления пакета Doctrine. Чтобы устранить проблемы, убедитесь, что загружена правильная среда, выполните следующие действия: Это было описано в оригинальной статье, но давайте убедимся, что это сделано перед обработкой. Если у вас была какая-либо другая среда, установленная в файле || .env ||, убедитесь, что вы вернули ее обратно в правильную среду (в моем CMOVE существующие файлы миграции ase, это было ||локально ||). он мог бы переписать его и установить среду обратно в || dev ing.

Если вы следовали первой статье, вы столкнетесь с дальнейшими проблемами после обновления, если у вас есть миграции, которые уже были выполнены до обновления пакета Doctrine. Чтобы устранить проблемы, убедитесь, что загружена правильная среда, выполните следующие действия: Это было описано в исходной статье, но давайте убедимся, что это сделано перед обработкой. Если у вас была какая-либо другая среда, установленная в файле .env , убедитесь, что вы вернули ее в правильную среду (В моем CMOVE (вырезать и вставить) ваши существующие миграции Переместить существующие файлы миграции ase, это было

Если вы следовали первой статье, вы столкнетесь с дальнейшими проблемами после обновления, если у вас есть миграции, которые уже были выполнены до обновления пакета Doctrine. Чтобы устранить проблемы, убедитесь, что загружена правильная среда, выполните следующие действия: Это было описано в оригинальной статье, но давайте убедимся, что это сделано перед обработкой. Если у вас была какая-либо другая среда, установленная в файле .env , обязательно верните ее обратно в соответствующую среду (В моем CMOVE (вырезать и вставить) ваши существующие миграции Переместите существующую папку Doctrine migrations была src/Миграции (их .php файлы) в новую папку Doctrine migrations. тинг файлов миграции ase, он был локальным ). он мог бы переписать его и установить среду обратно в dev ing. Если вы следовали первой статье, вы столкнетесь с дальнейшими проблемами после обновления, если у вас есть миграции, которые уже были выполнены до обновления пакета Doctrine. Чтобы устранить проблемы, убедитесь, что загружена правильная среда, выполните следующие действия: Это было описано в оригинальной статье, но давайте убедимся, что это сделано перед обработкой. Если у вас была какая-либо другая среда, установленная в файле .env

Синхронизировать хранилище метаданных Доктрины

Бежать доктрина php bin/консоли: миграции: синхронизация-хранение метаданных .

Доктрина изменила свою таблицу базы данных версии миграции в версии 3.0. Имя таблицы по умолчанию в 2.x было Имя таблицы по умолчанию в 2.x было migration_versions Имя таблицы по умолчанию в 2.x было migration_versions, а новое имя таблицы – doctrine_migration_versions . Имя таблицы по умолчанию в 2.x было migration_versions, а новое имя таблицы - doctrine_migration_versions . Структура таблицы также отличается в версии 3.0 — новый столбец Имя таблицы по умолчанию в 2.x было

Имя таблицы по умолчанию в 2.x было || migration_versions, а новое имя таблицы – || doctrine_migration_versions||. Структура таблицы также отличается в версии 3.0 — введен новый столбец || execution_time ||, который содержит количество миллисекунд, затраченных на миграцию. Команда ||синхронизация-хранение метаданных || должна создать данные о времени переноса из таблицы старых версий миграции в новую таблицу базы данных || doctrine_migration_versions || для вас. ru это было исполнено.

Имя таблицы по умолчанию в 2.x было migration_versions, а новое имя таблицы –

Имя таблицы по умолчанию в 2.x было || migration_versions, а новое имя таблицы – || doctrine_migration_versions||. Структура таблицы также отличается в версии 3.0 — введен новый столбец || время выполнения ||, который содержит количество миллисекунд, затраченных на миграцию. Команда ||синхронизация-хранение метаданных || должна создать данные о времени переноса из таблицы старых версий миграции в новую || Предыдущая команда установила новую миграцию Doctrine по умолчанию. Единственное, что осталось сделать сейчас, это сообщить Doctrine, что вы это сделали, выполните следующий запрос MySQL: уже выполнены некоторые миграции в предыдущей версии. таблица базы данных ионов. octrine_migration_versions || таблица базы данных для вас. ru это было исполнено.

INSERT INTO doctrine_migration_versions (version, executed_at, execution_time) SELECT concat("DoctrineMigrations\\Version", version), executed_at, 1 FROM migration_versions;

Имя таблицы по умолчанию в 2.x было || migration_versions, а новое имя таблицы – || doctrine_migration_versions||. Структура таблицы также отличается в версии 3.0 — введен новый столбец || время выполнения ||, который содержит количество миллисекунд, затраченных на миграцию. Команда ||синхронизация-хранение метаданных || должна создать данные о времени переноса из таблицы старых версий миграции в новую || Предыдущая команда установила новую миграцию Doctrine по умолчанию. Единственное, что осталось сделать сейчас, это || сообщить Doctrine, что вы это сделали, выполните следующий запрос MySQL: уже выполнен, поэтому этот запрос выполняет несколько вещей: я переношу данные в предыдущей версии. таблица базы данных ионов. octrine_migration_versions || таблица базы данных для вас. ru это было исполнено.

  • Имя таблицы по умолчанию в 2.x было migration_versions, а новое имя таблицы – doctrine_migration_versions . Структура таблицы также отличается в версии 3.0 — введен новый столбец execution_time , который содержит количество миллисекунд, затраченных на миграцию. Команда sync-metadata-storage должна создать временные данные из таблицы старых версий миграции, которую он создал Предыдущая команда установила новую миграцию Doctrine по умолчанию. Единственное, что осталось сделать сейчас, это

  • сообщить Doctrine, что вы это сделали, выполните следующий запрос MySQL: уже выполненная версия столбец в старой таблице содержал только метку времени миграции (например. 20200820072236 ). Этот запрос выполняет несколько действий: я выполняю миграцию в предыдущей версии. таблица базы данных ios. doctrine_migration_versions таблица базы данных для вас. ru это было исполнено. Имя таблицы по умолчанию в 2.x было

Имя таблицы по умолчанию в 2.x было || migration_versions, а новое имя таблицы – || doctrine_migration_versions||. Структура таблицы также отличается в версии 3.0 — введен новый столбец || execution_time ||, который содержит количество миллисекунд, затраченных на миграцию. Команда ||sync-metadata-storage || должна создать данные о времени переноса из таблицы старых версий миграции в новую || Предыдущая команда установила новую миграцию Doctrine по умолчанию. Единственное, что осталось сделать сейчас, это || сообщить Doctrine, что вы это сделали, выполните следующий запрос MySQL: уже выполненный, Очистите старую таблицу, вы можете поместить сюда что угодно, так как она отмечает только количество миллисекунды, которые заняла миграция при выполнении. время выполнения || столбец. Мы добавляем примерное значение || 1 || в качестве значения new Итак, чтобы перенести старые миграции в новую таблицу, мы добавляем || doctrinemigrations\Version|| в качестве префикса, чтобы получить новый формат: || Doctrinemigrations\Версия2020082007226 Doctrinemigrations Пакет новой Доктрины поддерживает несколько пространств имен, по умолчанию используется столбец || версия|| в старой таблице содержалась только метка времени миграции (напр. || 20200820072236 || ). Этот запрос выполняет несколько действий: я выполняю миграцию в предыдущей версии. таблица базы данных ионов. octrine_migration_versions || таблица базы данных для вас. ru это было исполнено.

Имя таблицы по умолчанию в 2.x было migration_versions, а новое имя таблицы - doctrine_migration_versions . Структура таблицы также отличается в версии 3.0 — введен новый столбец время выполнения , который содержит количество миллисекунд, затраченных на миграцию. Команда синхронизация-хранение метаданных должна создать данные о времени переноса из таблицы старых версий миграции в новую Предыдущая команда установила новую миграцию Доктрины по умолчанию. Единственное, что осталось сделать сейчас, это сообщить Доктрине, что вы это сделали, выполните следующий запрос MySQL: уже выполнен, поэтому, если все до сих пор шло гладко, старая таблица миграции_версий

Просто в качестве меры предосторожности экспортируйте структуру и данные старого миграция_версий таблица . После такого разрушительного, несовместимого с прошлым изменения, подобного этому, вы никогда не знаете, сломается ли что-нибудь еще в будущем.

Теперь вы можете удалить миграция_версий таблица из базы данных.

Вывод

Мы сделали следующее:

  • Переместил старые файлы миграции php в новый каталог миграции;

  • Хранилище метаданных синхронизированных миграций доктрины;

  • Позвольте Doctrine создать новое значение по умолчанию доктрина_миграции_версии ;

  • Преобразуйте в новый формат и импортируйте старые миграции в новую таблицу базы данных;

  • Убедитесь, что обновление прошло гладко;

  • Создайте резервную копию (экспортируйте) старой таблицы базы данных migration_versions , а затем удалите ее.

На этом пока все. На этом следует завершить обновление пакета Doctrine migrations до версии 3.0.

Оригинал: “https://dev.to/nikolastojilj12/symfony-doctrine-migrations-upgrade-to-version-3-27b7”