天天看点

十四、Flask进行数据库更新迁移

1.Migrate的使用

之前咱们通过SQLAlchemy来创建表的时候,都是采用的

db.create_all()

方法,这种方法有一个非常严重的问题,就是当我们需要添加或者删除数据库表中的字段的时候,直接修改Models里面的类是没有用的,必须要把数据库删除了,然后重新执行

db.create_all()

方法,才会把我们修改的内容映射到数据库中,这在项目上线之后,数据库中已经存在数据了,如果要更新数据库了,这种方法是万万不可采用的,不可能把数据库删了,在重新新建,这时候咱们就需要对数据库进行迁移。flask_migrate可以通过命令把修改后的模型直接映射到数据库中而不用删除数据库。

2.代码部分

这里咱们就不绕弯子了,直接上代码。app.py,这里需要导入两个文件,一个是exts.py 一个是config。exts是为了解决循环引用,单独把SQL-Alchemy独立出去的代码文件,cconfig是连接数据库的配置文件。

from flask import Flask
from exts import db
import config

app = Flask(__name__)
app.config.from_object(config)
db.init_app(app)

@app.route('/')
def hello_world():
    return 'Hello World!'


if __name__ == '__main__':
    app.run(debug=True)
           

exts.py代码如下。在这里单独引入

flask_sqlalchemy</