[점프 투 플라스크] 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 오후