mirror of
https://github.com/graphql-python/graphene.git
synced 2025-02-23 15:10:48 +03:00
first try to add postgresql specific fields to sqlachemy converters ref #172
This commit is contained in:
parent
531083702e
commit
e3704577b3
|
@ -1,9 +1,12 @@
|
|||
from singledispatch import singledispatch
|
||||
from sqlalchemy import types
|
||||
from sqlalchemy.orm import interfaces
|
||||
from sqlalchemy.dialects import postgresql
|
||||
|
||||
from ...core.classtypes.enum import Enum
|
||||
from ...core.types.scalars import ID, Boolean, Float, Int, String
|
||||
from ...core.types.definitions import List
|
||||
from ...core.types.custom_scalars import JSONString
|
||||
from .fields import ConnectionOrListField, SQLAlchemyModelField
|
||||
|
||||
try:
|
||||
|
@ -42,6 +45,8 @@ def convert_sqlalchemy_type(type, column):
|
|||
@convert_sqlalchemy_type.register(types.Unicode)
|
||||
@convert_sqlalchemy_type.register(types.UnicodeText)
|
||||
@convert_sqlalchemy_type.register(types.Enum)
|
||||
@convert_sqlalchemy_type.register(postgresql.ENUM)
|
||||
@convert_sqlalchemy_type.register(postgresql.UUID)
|
||||
def convert_column_to_string(type, column):
|
||||
return String(description=column.doc)
|
||||
|
||||
|
@ -71,3 +76,15 @@ def convert_column_to_float(type, column):
|
|||
def convert_column_to_enum(type, column):
|
||||
name = '{}_{}'.format(column.table.name, column.name).upper()
|
||||
return Enum(name, type.choices, description=column.doc)
|
||||
|
||||
|
||||
@convert_sqlalchemy_type.register(postgresql.ARRAY)
|
||||
def convert_postgres_array_to_list(type, column):
|
||||
return List(description=column.doc)
|
||||
|
||||
|
||||
@convert_sqlalchemy_type.register(postgresql.HSTORE)
|
||||
@convert_sqlalchemy_type.register(postgresql.JSON)
|
||||
@convert_sqlalchemy_type.register(postgresql.JSONB)
|
||||
def convert_json_to_string(type, column):
|
||||
return JSONString(description=column.doc)
|
||||
|
|
Loading…
Reference in New Issue
Block a user