난에 자동으로 SQLAlchemy의 ORM 클래스를 얻기 위해 노력하고 있어요 :SQLAlchemy의 삽입
을하거나 필드에 대한 외부 키 ID를 조회
또는 입력 항목에 대한
필드가 외래 키 테이블에 아직없는 경우 외래 키 테이블에 행을 추가하고 원래 테이블에서 자동 생성 된 ID를 사용하십시오.
는 설명하기 :
클래스 정의 나는 일 실행하면 산업 부문
for i in industry_record[]:
industry = Industry(id=i.id,
name=i.name,
sector=Sector(name=i.sector_name))
session.merge(industry)
결과 불행하게도을 설정하는 클래스를 사용
class EquityDB_Base(object):
@declared_attr
def __tablename__(cls):
return cls.__name__.lower()
__table_args__ = {'mysql_engine': 'InnoDB'}
__mapper_args__= {'always_refresh': True}
id = Column(Integer, primary_key=True)
def fk(tablename, nullable=False):
return Column("%s_id" % tablename, Integer,
ForeignKey("%s.id" % tablename),
nullable=nullable)
class Sector(EquityDB_Base, Base):
name = Column(String(40))
class Industry(EquityDB_Base, Base):
name = Column(String(40))
sector_id = fk('sector')
sector = relationship('Sector', backref='industries')
class Equity(EquityDB_Base, Base):
symbol = Column(String(10), primary_key=True)
name = Column(String(40))
industry_id = fk('industry')
industry = relationship('Industry', backref='industries')
is - 데이터베이스가 'sector_name'의 각 중복 사용에 대해 섹터 테이블에 개별 행을 추가합니다. 예를 들어 10 개의 업종에서 '기술'을 해당 섹터 이름으로 사용하는 경우 10 개의 업종마다 10 개의 고유 한 sector_id가 생성됩니다. 내가 원하는
-에 대한 데이터베이스에 이미 섹터 이름이 발표 될 때마다입니다 난 분명히 단지 SQLAlchemy의를 배우고 적절한 sector_id
에 자동으로 해결하지만,없는 것 이 동작을 사용하는 방법을 알아 내야합니다.
도움이 될 것입니다.