Запрошен неизвестный тип базы данных.
Так что моя проблема в том, что я добавил столбец типа tsvector в таблицу, не добавляя его в класс сущности, и теперь, когда я хочу запустить doctrine:schema:update --force
это дает мне эту ошибку
Unknown database type tsvector requested,
Doctrine\DBAL\Platforms\PostgreSqlPlatform may not support it.
что мне теперь делать, мне нужно создать тип tsvector в доктрине или удалить столбец tsvector, обновить схему с помощью строки commande, а затем добавить столбец tsvector обратно?
3 ответа
Вы должны всегда регистрировать любой тип, который вы используете, и который не поддерживается доктриной, это наиболее очевидный пример регистрации типа tsvector https://gist.github.com/darklow/3129096 и в вашем config.yml добавьте это:
dbal:
driver: %database_driver%
host: %database_host%
port: %database_port%
dbname: %database_name%
user: %database_user%
password: %database_password%
charset: UTF8
types:
tsvector:
class: myProject\myBundle\Type\tsvectorType
mapping_types:
tsvector: tsvector
Если вы не планируете использовать его с Doctrine, вы можете просто добавить следующее в конфигурацию Doctrine.
dbal:
driver: %database_driver%
...
...
types:
tsvector: string
hstore: string
Очевидно, что слой доктрины абстракции не знает такого типа, поэтому он не может использовать такой типизированный столбец, даже если столбец уже определен в таблице базы данных...
Рассмотрите возможность регистрации нового типа доктрины. Есть пример реализации типа tsvector https://gist.github.com/darklow/3129096