SQLAlchemy create_all without flask

时间:2016-10-03 21:27:42

标签: python sqlalchemy

我的烧瓶服务器使用了一个模型以及一个命令行工具。我希望脚本和烧瓶应用程序能够使用此模型以编程方式创建表。

在烧瓶应用程序中,我这样做:

from models import db
db.app = app
db.init_app(app)
db.create_all()

但是我不能在命令行工具中使用此代码,因为没有'app',没有应用程序我得到

  

RuntimeError:应用程序未在db实例上注册,并且没有应用程序绑定到当前上下文

哪个有道理。那么如何在不创建我的模型文件的另一个版本的情况下使用命令行工具呢?

我的模型文件(大致):

class User(db.Model):
__tablename__ = "users"

id = Column(Integer, primary_key=True)
account_id = Column(BigInteger, nullable=False)
team_name = Column(String, nullable=False)
external_id = Column(String(36), nullable=False)
# should not be filled with web app, but for misc notes we take later
notes = Column(String)


def __str__(self):
    return "User (account_id={}, team_name='{}', external_id='{}')".format(
            self.account_id, self.team_name, self.external_id)


__table_args__ = (
    UniqueConstraint("account_id", name="unique_account_id"),
    UniqueConstraint("external_id", name="unique_external_id"),
    UniqueConstraint("team_name", name="unique_team_name")
)

0 个答案:

没有答案