this issue involves the use of graphene-specific APIs which are not part
of the SQLAlchemy project. You will have better luck asking the
maintainers of graphene directly.
On 04/19/2016 02:16 AM, 刘邦瑞 wrote:
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 [email protected]
<mailto:[email protected]>.
To post to this group, send email to [email protected]
<mailto:[email protected]>.
Visit this group at https://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.
--
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 [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.