11

HSTOREPostgreSQL をバックエンドとして使用する場合、またはそれ以外の場合は、列に型を使用したいと考えていPickleTypeます。問題は、スキーマが (Python で) 定義されているときに、どのバックエンドが使用されるかを判断できないことです。テーブルが実際にバックエンド データベースに作成されるときに、これを判断し、条件付きでデータ型を選択するにはどうすればよいですか?

4

1 に答える 1

15

あなたはこのようなことを次のように達成することができますTypeEngine.with_variant

from sqlalchemy.types import PickleType
from sqlalchemy.dialects import postgresql

HybridType = PickleType()

HybridType = HybridType.with_variant(postgresql.HSTORE(), 'postgresql')

HybridTypeこれにより、他のタイプと同じように使用できる新しいタイプが作成されますがHSTORE、PostgresやPickleTypeその他のすべての場所で列が生成されることに注意してください。

于 2013-03-02T01:34:20.667 に答える