[점프 투 플라스크] p.58 질문 pybo.db가 생성되지 않습니다.

init.py 파일

from flask import Flask
from flask_migrate import Migrate
from flask_sqlalchemy import SQLAlchemy

import config

db = SQLAlchemy()
migrate = Migrate()


def create_app():
    app = Flask(__name__)
    app.config.from_object(config)

    # ORM
    db.init_app(app)
    migrate.init_app(app, db)
    from . import models

    # 블루프린트
    from .views import main_views
    app.register_blueprint(main_views.bp)

    return app

models.py 파일

from pybo import db


class Question(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    subject = db.Column(db.String(200), nullable=False)
    content = db.Column(db.Text(), nullable=False)
    create_date = db.Column(db.DateTime(), nullable=False)


class Answer(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    question_id = db.Column(db.Integer, db.ForeignKey('question.id', ondelete='CASCADE'))
    question = db.relationship('Question', backref=db.backref('answer_set'))
    content = db.Column(db.Text(), nullable=False)
    create_date = db.Column(db.DateTime(), nullable=False)

해결해본 방법
1.
최근 (2021/03/16) SQLAlchemy가 1.4.0 으로 버전 업그레이드 되면서 책의 내용을 진행할 때 다음과 같은 오류가 발생할 수 있다. 만약 아래와 같은 오류가 발생하지 않는다면 이미 해결된 것이므로 아래의 과정을 진행할 필요가 없다.
만약 위의 오류가 발생할 경우에는 다음처럼 SQLAlchemy의 버전을 다운그레이드 해야한다.

(myproject) c:\projects\myproject>pip install SQLAlchemy==1.3.23

2.
뭔가 모델이 수정되면서 ALTER 가 진행된 거 같습니다.
이런저런 테스트를 수행하신것 같네요.

58페이지면 초반이니 가장 쉬운 방법으로 기존 데이터베이스를 삭제하시고 진행하시면 될 것 같습니다.

모델과 init.py 파일을 책에 있는데로 일단 수정하신후, c:\projects\myproject\migrations 디렉터리와 c:\projects\myproject\pybo.db 파일을 삭제하세요.

그리고 다음 명령을 순서대로 수행하시면 됩니다.

flask db init
flask db migrate
flask db upgrade
해 보시고 안되면 다시 알려주세요.

1번 2번 모두 해봤는데 안되더라고요...

rlaclgns321 651

2022년 2월 18일 4:58 오후

목록으로
1개의 답변이 있습니다. 1 / 1 Page

명령 프롬프트에 작성한 것을 사진으로 첨부하겠습니다.
https://www.notion.so/797ad51a8ed6422585b308f45fd441c4

rlaclgns321

2022년 2월 18일 5:01 오후

이미지가 권한이 없어서 볼수가 없네요 - 박응용님, 2022년 2월 18일 7:29 오후 추천 , 대댓글