一度テーブルを作成し、実行し、利用。
その後、別のテーブルを作成し、実行すると、
no such table: dbtests
「dbtests」というテーブルが見つからない場合の対処法。
from flaskr import db class Entry(db.Model): __tablename__ = 'entries' id = db.Column(db.Integer, primary_key=True) title = db.Column(db.Text) text = db.Column(db.Text) def __repr__(self): return '<Entry id={id} title={title!r}>'.format( id=self.id, title=self.title) #追加部分 class DbTest(db.Model): __tablename__ = 'dbtests' id = db.Column(db.Integer, primary_key=True) title = db.Column(db.Text) text = db.Column(db.Text) def __repr__(self): return '<DbTest id={id} text={text!r}>'.format( id=self.id, text=self.text) #追加部分 def init(): db.create_all()
追加して他の連携部分もきちんと書けている。
コマンドラインにて以下の操作をすることにより解決できます。
"""「flaskr」があるディレクトリに移動し、""" >python3 >from flaskr.models import Entry, DbTest,db >db.create_all() >exit() #そして再び >python3 manage.py runserver
するとテーブルが作成されている。
__init__.pyファイルに置けるデータベースの初期化は一度しか機能しないので、必ず初期化しましょう。