1. 程式人生 > >[python]Flask-migrate簡單入門

[python]Flask-migrate簡單入門

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簡單入門