天天看點

十四、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</