2017-12-22 8 views
0

이 오류를 해결하는 방법을 도와주세요 - (키) AttributeError를 :Sqlalchemy에서 automap_base를 사용하여 AttributeError (키)를 처리하는 방법은 무엇입니까?

File "pivot_table_measurements.py", line 1, in <module> 
    from database import * 
    File "/home/dedeco/Projetos/bigclima-project/database.py", line 24, in <module> 
    MeasureRanges = Base.classes.measure_ranges 
    File "/home/dedeco/craw/lib/python3.5/site-packages/sqlalchemy/util/_collections.py", line 212, in __getattr__ 
    raise AttributeError(key) 
AttributeError: measure_ranges 

database.py :

from sqlalchemy.ext.automap import automap_base 
from sqlalchemy.orm import Session 
from sqlalchemy import create_engine 
from sqlalchemy.orm.exc import MultipleResultsFound, NoResultFound 
import string 
from decimal import Decimal 

ECHO = False 
AUTOFLUSH = False 

Base = automap_base() 

engine = create_engine('postgresql://user:[email protected]:5432/clima', echo=ECHO) 

Base.prepare(engine, reflect=True) 

Country = Base.classes.countries 
State = Base.classes.states 
City = Base.classes.cities 
Measurement = Base.classes.measurements 
MeasurementHourly = Base.classes.measurements_hourly 
MeasureRanges = Base.classes.measure_ranges 
Parameter = Base.classes.parameters 
WeatherStation = Base.classes.weather_stations 

session = Session(engine, autoflush=AUTOFLUSH) 

표는 데이터베이스에 종료 measure_ranges 그러나 나는 '내가 왜이 알려져 있지 않습니다 이 오류가 나타납니다. 이 줄을 삭제하면 (MeasureRanges = Base.classes.measure_ranges) 작동하므로이 테이블의 일부 문제와 관련된 오류라고 생각합니다.

답변

0

나는이 문제와 답을 공유하기로 결정했는데, 이는 기본적인 것이지만 해결책을 찾기가 어려울 수 있기 때문입니다.

기본 키을 만들지 않았기 때문에 문제가 발생했습니다. 클래스에 자동 매핑 할 수 없기 때문에 문제가 발생했습니다.

이 문서를 참조하십시오 : 실용적으로

을, 우리는 테이블을 매핑 할 수 있도록, 그것은 기본 키를 지정해야합니다 것을 의미한다. 또한 표가 두 개의 다른 표 사이에 순수 연관 표로 감지되면 직접 으로 매핑되지 않고 사이의 다 대다 표로 구성되어 두 개의 참조 표에 대한 매핑이 구성됩니다.

See more details here: SQLAlchemy 1.2 Documentation - Autoamp

관련 문제