Hi,

I encountered this problem when I try to use Automap methods in Graphene.

The situation is: I have an existing table 'cb_people' in MySQL databases 
under SCHEMA_NAME and want to auto map it to python class People like this:


engine = create_engine('mysql+mysqldb://root:sync@localhost', 
convert_unicode=True)
db_session = scoped_session(sessionmaker(autocommit=False, autoflush=False, 
bind=engine))
metadata = MetaData()
metadata.reflect(bind = engine, schema = SCHEMA_NAME)
Base = automap_base(metadata = metadata)
Base.query = db_session.query_property()

class People(Base):
    __tablename__ = 'cb_people'
    id = Column(Integer, primary_key=True)
    object_id = Column(String(64), nullable=False)
    first_name = Column(String(128), nullable=False)
    last_name = Column(String(128), nullable=False)
    birthplace = Column(String(128), nullable=True)
    affiliation_name = Column(String(128), nullable=True)

def init_db():
    Base.prepare(engine, reflect=True, classname_for_table = 'cb_people')
    People = Base.classes.cb_people


Then I need to register the class People on graphene like this:


@schema.register
class People(SQLAlchemyNode):
    class Meta:
         model = PeopleModel


which is not correct. When I run the function init_db(), I got the error 
message:


File "/Users/dennisliu/Documents/CrunchbaseFAQ/flask_sqlalchemy/schema.py", 
line 12, in <module>

    class People(SQLAlchemyNode):

  File 
"/usr/local/lib/python2.7/site-packages/graphene/core/classtypes/base.py", 
line 31, in __new__

    return mcs.construct(new_class, bases, attrs)

  File 
"/usr/local/lib/python2.7/site-packages/graphene/contrib/sqlalchemy/types.py", 
line 57, in construct

    cls.construct_fields()

  File 
"/usr/local/lib/python2.7/site-packages/graphene/contrib/sqlalchemy/types.py", 
line 22, in construct_fields

    inspected_model = sqlalchemyinspect(cls._meta.model)

  File "build/bdist.macosx-10.11-x86_64/egg/sqlalchemy/inspection.py", line 
75, in inspect

sqlalchemy.exc.NoInspectionAvailable: No inspection system is available for 
object of type <class 'sqlalchemy.ext.declarative.api.DeclarativeMeta'>



Is there anyway to solve this problem?

Thank you so much!



Best,

Bangrui



-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at https://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

Reply via email to