IT/파이썬

플라스크 sqlalchemy 조인 에러 : Could not determine join condition between parent/child tables on relationship TenantRoles.tenant - there are no foreign keys linking these tables

thesse 2021. 6. 16. 10:53
300x250
반응형

model을 아래와 같이 Many to One으로 정의하고

class Tenants(db.Model):
    tenant_id = db.Column(db.Integer, primary_key=True, nullable=False)
    ...

class TenantRoles(db.Model):
    ...
    tenant_id = db.Column(db.Integer, db.ForeignKey('Tenants.tenant_id'), nullable=True)
    tenant = db.relationship('Tenants', backref=db.backref('tenant_role'))

 

db상에서도 fk로 연결이 되어있는데

실행해보면 에러남

이 에러메시지의 최하단에 나오는 문구는 이것

sqlalchemy.exc.NoForeignKeysError: Could not determine join condition between parent/child tables on relationship TenantRoles.tenant - there are no foreign keys linking these tables.  Ensure that referencing columns are associated with a ForeignKey or ForeignKeyConstraint, or specify a 'primaryjoin' expression.

 

 

 

 

 

뭐가 문제인고 하니

 

여기에서 아래 tenant의 db.relatiohship은 파이썬의 테이블 클래스 이름인 Tenant를 넣어주면 되지만

위에 있는 db.ForeignKey에는 db상의 테이블 이름을 넣어줘야 한다.

즉 Tenant가 아닌 tenant를 넣어야 하는 것

 

 

T를 t로 바꾸고 실행하면 잘됨

 

300x250
반응형