sqlalchemy를 처음 사용했습니다. 나는 table1
의 열 중 하나에SqlAlchemy에서 automap으로 클래스를 생성 한 후에 관계를 선언 할 수 있습니까?
from sqlalchemy import create_engine, MetaData, Column, Table, ForeignKey
from sqlalchemy.ext.automap import automap_base, generate_relationship
from sqlalchemy.orm import relationship, backref
from config import constr, mytables
def _gen_relationship(base, direction, return_fn,
attrname, local_cls, refferred_cls, **kw):
return generate_relationship(base, direction, return_fn, attrname, local_cls, refferred_cls, **kw)
engine = create_engine(constr)
metadata = MetaData()
metadata.reflect(engine, only=mytables)
Base = automap_base(metadata=metadata)
Base.prepare(engine, reflect=True, generate_relationship=_gen_relationship)
Tableclass1 = Base.classes.table1
Tableclass2 = Base.classes.table2
Table2.ID
지도 DB를 MySQL의에서 관계를 가진 기존 DB의 오토 맵을 만들 자습서를 따랐다. 그러나 쿼리를 사용하여 table1
및 table2
에 가입하려고하면 "외래 키 관계를 찾을 수 없습니다"라는 오류가 발생합니다. 이후이 두 테이블의 관계를 알기 때문에 클래스 인스턴스가 생성 된 후에이 관계를 선언하는 방법이 있습니까? 아니면 쿼리 함수에서 명시 적으로이 관계를 말할 수있는 방법이 있습니까? 감사합니다.