如何使用 SQLalchemy 和 Alembic 自动初始化数据库?

Mar*_*oma 7 flask flask-sqlalchemy alembic

目前,我运行

$ flask db init
$ flask db migrate -m "initialization"
$ flask db upgrade
Run Code Online (Sandbox Code Playgroud)

如果数据库不存在。我想在 Python 中运行它,例如

app.create_db()
Run Code Online (Sandbox Code Playgroud)

这样我就不必关心设置数据库了。那可能吗?

我使用flask-sqlalchemyflask-migrations插件

Nic*_*ing 1

显然,你已经安装了flask-migrate, flask-sqlalchemy

所以,你可以这样做:

from flask_sqlalchemy import SQLAlchemy
from flask import Flask

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////tmp/test.db'
db = SQLAlchemy(app)
db.create_all()

Run Code Online (Sandbox Code Playgroud)

API文档:flask.ext.sqlalchemy.SQLAlchemy.create_all

但你的问题让我很困惑。为什么受到SQLAlchemy和的限制Alembic