[python]Flask-migrate簡單入門


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命名等,migreate都不能發現的。更多限制細節見此:Alembic autogenerate documentation

3. 數據庫升級

flask db upgrade

最后一步。此命令相當於執行了version文件夾下的相應py版本,對數據庫進行變更操作。

 

此后,對model有變更,只要重復migrate和upgrade操作即可。

查看幫助文檔:

flask db --help

 

使用Flask-Script的命令調用,自行參考官方文檔: Flask-Migrate Documentation

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM