2013-07-06 2 views
1

안녕하세요 일부 외래 키 문제가 있습니다.플라스크, SQLAlchemy, 외래 키

나는 이런 식으로 뭔가가 :

from app.foos.views import mod as foosModule 
from app.bars.views import mod as barsModule 

app.register_blueprint(foosModule) 
app.register_blueprint(barsModule) 

내가 설정처럼 호출하는 경우 : https://github.com/mitsuhiko/flask/wiki/Large-app-how-to

그래서 나는 이런 식으로 뭔가를 가지고 :

class Foo(db.Model): 
    """The foo object.""" 
    __tablename__ = 'foos_foo' 
    id = db.Column(db.Integer, primary_key=True) 
    title = db.Column(db.Text, unique=True) 
    content = db.Column(db.Text) 
    bar = db.relationship('Bar', backref='bars_bar') 
    bar_id = db.Column(db.Integer, db.ForeignKey('bars_bar.id')) 


class Bar(db.Model): 
    """The bar object.""" 
    __tablename__ = 'bars_bar' 
    id = db.Column(db.Integer, primary_key=True) 
    name = db.Column(db.Text, unique=True) 
    description = db.Column(db.Text) 
    status = db.Column(db.SmallInteger, default=NEW) 

내가이 구성 스타일을 사용을 Mitsuhiko, python shell.py의 스타일은 다음과 같습니다.

sqlalchemy.exc.OperationalError: (OperationalError) no such table: bars_bar u'SELECT bars_bar.id AS bars_bar_id, bars_bar.name AS bars_bar_name, bars_bar.description AS bars_bar_description, bars_bar.status AS bars_bar_status \nFROM bars_bar'() 

어떻게 될까요? 네, 테이블을 만들 것이기 ​​때문에 테이블이 없습니다. 다른 테이블을 만들기 전에 테이블을 만드는 방법이 있습니까? 아니면 내가 잘못 했니?

시간 내 주셔서 감사합니다.

답변

3

인용 Flask-SQLalchemy docs :

초기 데이터베이스를 작성하려면, 단지 대화 형 파이썬 쉘에서 DB 객체를 가져 와서 테이블과 데이터베이스를 만들 수있는 SQLAlchemy.create_all() 방법을 실행합니다

from yourapplication import db 
db.create_all() 
관련 문제