One or more mappers failed to initialize - can't proceed with initialization of other mappers. Triggering mapper: 'mapped class User->user'. Original exception was: relationship 'tweets' expects a class or a mapper argument
라는 오류가 떴다. 읽어보니 매핑 관계에서 문제가 있었다.
해결책
1. 테이블 간의 관계 relationship을 꼼꼼하게 봐준다.
처음에
class Tweet(db.Model):
__tablename__ = 'tweet'
id = db.Column(db.Integer(), primary_key=True)
text = db.Column(db.Text())
embedding = db.Column(db.PickleType)
user_id = db.Column(db.Integer(),db.ForeignKey('user.id'))
class User(db.Model):
__tablename__ = 'user'
id = db.Column(db.Integer(), primary_key=True)
username = db.Column(db.String(64), nullable=False) #unique=True,
full_name = db.Column(db.String(64), nullable=False)
followers = db.Column(db.Integer())
tweets = db.relationship("Tweet", back_populates="users")
back_populates로 relationship을 지정하니 오류가 난 거 같아서 back_ref로 바꿨는데, 저 오류가 떠서
다시 back_populates로 바꾸니 오류가 없어졌다.
2. 작업하던 폴더의 migrations 폴더 삭제
3. CLI에서
- FLASK_APP=flask_app flask db init
- FLASK_APP=flask_app flask db migrate
- FLASK_APP=flask_app flask db upgrade
로 업그레이드 적용해주기
Can't locate revision identified by - 에러가 뜨긴 했지만
매핑이 잘 적용되었다.
오류 코드가 없어졌다!
'개발 > Flask, Fastapi' 카테고리의 다른 글
Flask 로 MongoDB Atlas 데이터베이스와 연동하기 (0) | 2021.03.26 |
---|---|
mongodump 없이 Mongocb Collection 백업하고 복사하기 (0) | 2021.03.26 |
flask-mongoalchemy vs mongoengine (0) | 2021.03.25 |
flask에서 request.args.get()의 의미 (0) | 2021.03.23 |
DOM (0) | 2021.03.21 |