В настоящее время я использую графен и SQLAlchemy для интеграции GraphQL, и я сталкиваюсь с проблемой, когда в одном из столбцов в базе данных поставщиков есть «$» в имени столбца. Это явно противоречит соглашению об именах в GraphQL, поэтому следующее выдает ошибку AssertionError: Names must match /^[_a-zA-Z][_a-zA-Z0-9]*$/ but "ENTRY_ID$_ASC" does not.
class MapsModel(Base):
__tablename__ = 'maps$raw'
id = Column(String(), primary_key=True)
entry_id = Column('entry_id$', String(), ForeignKey('entry$raw.id')) #Complains about this
Я посмотрел вокруг, и кажется, что это потенциально можно решить, написав функцию распознавателя для entry_id $ столбец (на основе этого сообщения StackOverflow ), но я не совсем уверен, как реализовать эквивалент в SQLAlchemy без определения столбца в определении MapsModel
. Наш SQLAlchemyObjectType следующий (Я пытаюсь выяснить ????):
class Maps(SQLAlchemyObjectType):
entry = graphene.Field(Entry)
class Meta:
model = MapsModel
interfaces = (relay.Node, )
def resolve_entry(self, info):
return ????