Doctrine Migrations,使用自定义学说类型的问题

Vic*_*uez 6 migration symfony doctrine-orm

我正在使用Symfony2 + Doctrine2构建一个应用程序.我的应用程序需要存储地理空间数据,因此我编写了适当的学说扩展.一切都很好,应用程序已经在生产环境中运行了很长时间.

现在我必须添加一些新功能,我需要更新数据库而不删除所有数据.我想要使​​用DoctrineMigrationBundle,但是当我运行时:

$ php app/console doctrine:migrations:status
Run Code Online (Sandbox Code Playgroud)

我收到了这个错误:

[Doctrine\DBAL\DBALException]                                                                     
  Unknown database type point requested,
  Doctrine\DBAL\Platforms\MySqlPlatform may not
  support it. 
Run Code Online (Sandbox Code Playgroud)

这是我的config.yml的相关部分:

# Doctrine Configuration
doctrine:
    dbal:
        driver:   %database_driver%
        host:     %database_host%
        port:     %database_port%
        dbname:   %database_name%
        user:     %database_user%
        password: %database_password%
        charset:  UTF8
        types:
          point: App\EngineBundle\DoctrineExtensions\PointType 
Run Code Online (Sandbox Code Playgroud)

自定义类型'point'已经映射,所以我做错了什么?

Vic*_*uez 12

我回答了我自己的问题,似乎问题是DoctrineMigrations还需要一个自定义类型的映射.所以config.yml应该如下所示:

# Doctrine Configuration
doctrine:
    dbal:
        driver:   %database_driver%
        host:     %database_host%
        port:     %database_port%
        dbname:   %database_name%
        user:     %database_user%
        password: %database_password%
        charset:  UTF8
        types:
          point: App\EngineBundle\DoctrineExtensions\PointType 
        mapping_types:
          point: point
Run Code Online (Sandbox Code Playgroud)