標籤:

sqlalchemy中用db.create_all()無法建表?

使用db.create_all()命令無法成功創建表,請問什麼原因會導致該問題,謝謝!


咳咳,我來回答你的問題,你需要在db.create_all()所在的文件裡面的頂部事先導入那些model,比如你可能需要這樣做from model.account import User,User的定義是def User(db.Model)這樣的,總之我可以了。


這個問題卡了我2小時,有可能是資料庫連接填錯了,你在python下看下db的配置就知道了;

python xxx shell

from xxx import db

db


可能是沒有導入相應model的緣故。

剛剛在看狗書。第50頁創建表的指導中,寫的是:

&>&>from hello import db

&>&>db.create_all()

因為教程中的class User直接在hello.py中定義的,所以能直接識別定義的model並自動生成。

如果你定義的model不在hello這個文件中,則需要如高票答案說的,顯式的導入model所在的py文件。如我為User model新建了一個model/user.py,所以我還要 from model import user。

import了之後,再調用db.create_all(),表就生成了。


非常感謝你的邀請,但實在抱歉,本人對sqlalchemy這個東西並不熟


推薦閱讀:

遇到一個問題,請各位給講解一下sqlalchemy中的backref?
如何理解python的sqlalchemy這種orm框架?

TAG:SQLAlchemy |