Flask項目中數據庫遷移的使用
阿新 • • 發佈:2018-07-23
database manager 回滾 導出數據庫 clas ger initial 過程 刪除
數據庫遷移
- 在開發過程中,需要修改數據庫模型,而且還要在修改之後更新數據庫。最直接的方式就是刪除舊表,但這樣會丟失數據。
- 更好的解決辦法是使用數據庫遷移框架,它可以追蹤數據庫模式的變化,然後把變動應用到數據庫中。
- 在Flask中可以使用Flask-Migrate擴展,來實現數據遷移。並且集成到Flask-Script中,所有操作通過命令就能完成。
- 為了導出數據庫遷移命令,Flask-Migrate提供了一個MigrateCommand類,可以附加到flask-script的manager對象上。
首先要在虛擬環境中安裝Flask-Migrate。
pip install flask-migrate
-
以下為實現數據庫遷移的代碼層面設置(未定義具體的數據庫):
-
from flask import Flask # 導入flask from flask_sqlalchemy import SQLAlchemy # 導入SQLALchemy from flask_migrate import Migrate,MigrateCommand # 導入Migrate from flask_script import Manager # 導入終端命令 app = Flask(__name__) # 初始化Flask manager = Manager(app) # 創建終端命令對象
以下為終端命令層面操作數據庫遷移
#這個命令會創建migrations文件夾,所有遷移文件都放在裏面,初始化時設置 python database.py db init
# 創建遷移腳本(給遷移文件起備註名) -m 後面為備註名python database.py db migrate -m ‘initial migration‘
# 更新數據庫python database.py db upgrade
# 查看以前的版本
python app.py db history
# 回滾到指定版本python app.py db downgrade 版本號
有不同簡介歡迎交流
Flask項目中數據庫遷移的使用