Следуя примеру из документации sqlalchemy и адаптируя , я получаю этот код для своей базы данных:
from sqlalchemy.ext.automap import automap_base
from sqlalchemy import create_engine, MetaData
engine = create_engine('postgresql://u:pw@db')
metadata = MetaData(schema='name')
metadata.reflect(engine, only=['a', 'b'])
Base = automap_base(bind=engine, metadata=metadata)
Base.prepare()
A, B = Base.classes.a, Base.classes.b
result = A.first()
print(result.id)
Запуск сценария возвращает эту ошибку:
File "/anaconda3/lib/python3.6/site-packages/spyder/utils/site/sitecustomize.py", line 705, in runfile
execfile(filename, namespace)
File "/anaconda3/lib/python3.6/site-packages/spyder/utils/site/sitecustomize.py", line 102, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)
File "/Users/<User>/untitled0.py", line 18, in <module>
Base.prepare(engine,reflect=True)
File "/anaconda3/lib/python3.6/site-packages/sqlalchemy/ext/automap.py", line 788, in prepare
generate_relationship)
File "/anaconda3/lib/python3.6/site-packages/sqlalchemy/ext/automap.py", line 895, in _relationships_for_fks
local_cls, referred_cls):
TypeError: issubclass() arg 2 must be a class or tuple of classes