2012-07-13 8 views
6

私はSymfony2 + Doctrine2を使用してアプリケーションを構築しています。私のアプリケーションは地理空間データを格納する必要があるので、適切な教義拡張を書きました。すべてがかなりうまくいっているし、アプリケーションは生産環境で長時間実行されています。Doctrineの移行、カスタムのdoctrineタイプを使用した場合の問題

新しい機能を追加する必要があり、すべてのデータを削除せずにデータベースを更新する必要があります。私はDoctrineMigrationBundleの使用についてthougthが、私は実行すると:

$ php app/console doctrine:migrations:status 

私はこのエラーを得た:

[Doctrine\DBAL\DBALException]                  
    Unknown database type point requested, 
    Doctrine\DBAL\Platforms\MySqlPlatform may not 
    support it. 

これは私の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 

カスタムタイプ 'ポイント'がマップされているので、何が間違っていますか?

+0

私はsynfony 3とpostgresにありますが、私はこのエラーを受け取ります。どのように解決できますか? Doctrine \ DBAL \ Platforms \ PostgreSQL92Platformは、これをサポートしていない可能性があります。 –

答えて

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 
+0

ありがとう、これは私にいくつかの頭痛を救った:-)残念ながら、これは同じSQLのネイティブにマップされている複数のカスタムタイプを使用するときに問題があります。 enumAとenumBの2つのタイプがあり、いずれもENUM(...)にマップされています。 Doctrineは(DC2Type:enumA)コメントを無視します。 : - / – xrstf

関連する問題