数据库对象上的create_all方法未创建数据库表

时间:2019-05-04 17:04:02

标签: python python-3.x flask flask-sqlalchemy

我有一个非常基本的Flask / SqlAlchemy项目,这里有一条路由。

https://github.com/thenetimp/flask_base_v2

在路由中,我从User模型创建了一个用户对象,但是当我调用路由时,出现以下错误

sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) no such 
table: user
[SQL: INSERT INTO user (email_address, password, first_name, last_name, created_on, updated_on) VALUES (?, ?, ?, ?, ?, ?)]
[parameters: ('jdoe@gmail.com', b'$2b$12$emg2oQcGeK0LEg5IFgie8eOEn2MJ/gKzyGWRPqOGJcQqlM1kCyskK', 'John', 'Doe', '2019-05-05 01:12:29.339788', '2019-05-05 01:12:29.339805')]
(Background on this error at: http://sqlalche.me/e/e3q8)

在应用程序工厂create_app()函数中,我正在调用db.create_all()来更新数据库并创建表,但事实并非如此。其他具有类似问题的堆栈溢出问题都表明使用了错误的数据库引用,但是我不知道如何解决它,因此我使用的是正确的引用。

我已经搜索了stackoverflow,但是类似问题的答案并没有帮助我的用例/应用程序结构(如果可能的话,我希望保持不变)。

如果有人可以看一下,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

我正在使用的文章中使用了一个示例:

from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()

class User(Base):

声明类。但是,这并未将模型附加到数据库实例。更改类声明以扩展db.Model可以解决此问题。

相关问题