В настоящее время я работаю над проектом Symfony, и код находится внутри git
репо. Мы работаем в одной истории/одной ветки и не нажимаем код, пока не получим обзор кода.
Прежде чем спросить, я хочу сказать, что рабочее решение (уже опробованное локально) заключается в объединении одной из ветвей в ту, в которой я сейчас работаю, но я не могу этого сделать из-за процессов.
Итак, это, как говорится, вот моя проблема:
В одной ветке я сконфигурировал базу данных доктрины следующим образом:
doctrine:
dbal:
default_connection: default
types:
point: Phil\GeolocationBundle\ORM\PointType
connections:
default:
driver: "%database_driver%"
host: "%database_host%"
port: "%database_port%"
dbname: "%database_name%"
user: "%database_user%"
password: "%database_password%"
charset: UTF8
mapping_types: { point: point }
orm:
auto_generate_proxy_classes: "%kernel.debug%"
auto_mapping: true
dql:
numeric_functions:
POINTSTR: Phil\GeolocationBundle\ORM\PointStr
DISTANCE: Phil\GeolocationBundle\ORM\Distance
phil_geolocation:
default:
latitude: 40.7388655
longitude: -73.9830327
city: New York
Это работает нормально, и если я пытаюсь создать файл миграции, он генерируется без каких-либо проблем.
doctrine:
dbal:
driver: "%database_driver%"
host: "%database_host%"
port: "%database_port%"
dbname: "%database_name%"
user: "%database_user%"
password: "%database_password%"
charset: UTF8
# if using pdo_sqlite as your database driver:
# 1. add the path in parameters.yml
# e.g. database_path: "%kernel.root_dir%/data/data.db3"
# 2. Uncomment database_path in parameters.yml.dist
# 3. Uncomment next line:
# path: "%database_path%"
orm:
auto_generate_proxy_classes: "%kernel.debug%"
auto_mapping: true
Когда я пытаюсь создать миграцию в этой ветке, я получаю следующую ошибку:
[Doctrine\DBAL\DBALException]
Unknown database type point requested, Doctrine\DBAL\Platforms\MySqlPlatform may not support it.
Странным фактом является то, что это началось после того, как я работал в другой ветке, и, как я сказал в начале, если я объединю рабочую ветвь в нерабочую, файлы миграции создаются ОК.
Я пробовал очевидные вещи, такие как очистка кеша symfony (как на dev, так и на prod-средах, на всякий случай), обновление композитных файлов (поскольку первая конфигурация была добавлена компонентом, который мне нужно было использовать, поэтому в моей второй ветке он был удален), проверка других конфигурационные файлы, такие как config-dev.yml
и т.д., чтобы просто проверить, что я ничего не пропустил. Я даже сильно удалил свои каталоги кешей.
У меня заканчивается представление о том, что может случиться, это похоже на то, что он каким-то образом кэшировал мой файл конфигурации, но это должно быть невозможно!
Я нашел этот пост, но это не то, что происходит со мной.
Вы запустили doctrine:migrations:execute —down yourmigrationnumber
перед переходом из одной ветки в другую?
Ваша база данных находится в другом состоянии (из другой ветки), поэтому, если вы запускаете новую миграцию, не выполняя метод down()
прежде чем она попытается создать файл миграции, ранее удалив старое состояние с таким типом, который не знает, как чтобы справиться с этим.
Дайте мне знать, если это поможет!