데이터베이스 스키마 마이그레이션을 만들려고 할 때 이상한 오류가 발생합니다. 뭐가 잘못 됐는지 알아 내 줄 수있어? 감사!매핑 된 테이블의 기본 키 열을 조합 할 수 없습니다.
나는이납니다 :
$ python app.py db upgrade
[skipped]
sqlalchemy.exc.ArgumentError: Mapper Mapper|EssayStateAssociations|essay_associations could not assemble any primary key columns for mapped table 'essay_associations'
내 모델 :
class EssayStateAssociations(db.Model):
__tablename__ = 'essay_associations'
ALLOWED_APP_ESSAY_STATES = ["selected", "not_selected", "pending"]
application_essay_id = db.Column(
db.Integer,
db.ForeignKey("application_essay.id"),
primary_key=True),
theme_essay_id = db.Column(
db.Integer,
db.ForeignKey("theme_essay.id"),
primary_key=True),
state = db.Column(db.String, default="pending")
@validates('state')
def validate_app_essay_states(self, key, state):
assert state in self.ALLOWED_APP_ESSAY_STATES
return state
버전 :
Flask==0.10.1
Flask-Migrate==1.2.0
Flask-SQLAlchemy==1.0
SQLAlchemy==0.9.4
내가 적절한 해답을 제공 할 것입니다,하지만 지금은 내가 ' 그냥 당신이 진짜 오류가'application_essay_id'의 정의 뒤에 후행 쉼표라고 생각해. 당신이 * tuple * 열 대신 하나의 열을 포함하는 속성을 만들었습니다. 이것은 일반적인 오류가 열을 복사 할 때 기대하고있다. 'op.create_table (에서'모델로 정의 (예 : 수작업으로 만든 마이그레이션에서 선언적 기반에서 자동 생성으로 바꾸는 것) - 적어도이 방법은 * I * 같은 방식으로 이것을 망쳐 놓은 것입니다. –