[python]Flask-migrate簡單入門
阿新 • • 發佈:2018-06-21
ini rate 源文件 .config mar bic 生成 tps lan
Flask-Migrate是用於處理SQLAlchemy 數據庫遷移的擴展工具。當Model出現變更的時候,通過migrate去管理數據庫變更。
Migrate主要有3個動作,init、migrate 和upgrade。
以下面的應用為例:
1 from flask import Flask 2 from flask_sqlalchemy import SQLAlchemy 3 from flask_migrate import Migrate 4 5 app = Flask(__name__) 6 app.config[‘SQLALCHEMY_DATABASE_URI‘] = "sqlite:///app.db" 7 8 db = SQLAlchemy(app) 9 migrate = Migrate(app, db) 10 11 # Model 12 class User(db.Model): 13 id = db.Column(db.Integer, primary_key=True) 14 name = db.Column(db.String(128))
1. 初始化
flask db init
這個命令會在當前目錄下生成一個migrations文件夾。這個文件夾也需要和其他源文件一起,添加到版本控制。
2. 生成最初的遷移
flask db migrate
此命令會在migrations下生成一個version文件夾,下面包含了對應版本的數據庫操作py腳本。
由於migrate並不一定全部發現你對model的所有改動,因此生成的py腳本需要review,必要的話進行edit。
例如目前知道的,表名稱表更,列名稱變更,或給constraints命名等,都是不能發現的。更多限制細節見此:Alembic autogenerate documentation
3. 數據庫升級
flask db upgrade
最後一步。此命令相當於執行了version文件夾下的相應py版本,對數據庫進行變更操作。
此後,對model有變更,只要重復migrate和upgrade操作即可。
查看幫助文檔:
flask db --help
使用Flask-Script的命令調用,自行參考官方文檔: Flask-Migrate Documentation
[python]Flask-migrate簡單入門