1

所以我的问题是我在表中添加了一列类型为 tsvector 的列,而没有将其添加到实体类中,现在当我想运行doctrine:schema:update --force它时,它给了我这个错误

Unknown database type tsvector requested, 
Doctrine\DBAL\Platforms\PostgreSqlPlatform may not support it.

我现在应该怎么做,我必须在教义中创建一个 tsvector 类型还是删除 tsvector 列使用命令行更新架构,然后重新添加 tsvector 列?

4

3 回答 3

2

您应该始终注册您使用的任何类型并且学说不支持,这是注册 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
于 2013-03-30T18:03:26.830 回答
2

如果您不打算将它与 Doctrine 一起使用,您可以将以下内容添加到您的教义配置中。

dbal:
    driver:   %database_driver%
    ...
    ...
    types:
        tsvector: string
        hstore: string
于 2014-03-25T11:13:04.797 回答
0

显然学说抽象层不知道这种类型,所以它不能使用这种类型的列,即使列已经在数据库表中定义......

考虑注册新的学说自定义类型。有 tsvector 类型实现的例子https://gist.github.com/darklow/3129096

于 2013-03-30T17:49:25.703 回答