我們在升級系統的時候,經常碰到需要更新伺服器端數據結構等操作,之前的方式是通過手工編寫alter sql腳本處理,經常會發現遺漏,導致程式發佈到伺服器上後無法正常使用。 現在我們可以使用Flask-Migrate插件來解決之,Flask-Migrate插件是基於Alembic,Alembic是由大名 ...
我們在升級系統的時候,經常碰到需要更新伺服器端數據結構等操作,之前的方式是通過手工編寫alter sql腳本處理,經常會發現遺漏,導致程式發佈到伺服器上後無法正常使用。
現在我們可以使用Flask-Migrate插件來解決之,Flask-Migrate插件是基於Alembic,Alembic是由大名鼎鼎的SQLAlchemy作者開發數據遷移工具。
具體操作如下:
1. 安裝Flask-Migrate插件
$ pip install Flask-Migrate
2. 修改Flask App部分的代碼,以增加Migrate相關的Command
db = SQLAlchemy(app) migrate = Migrate(app, db) manager = Manager(app) manager.add_command('db', MigrateCommand)
3. 初始化
$ python app.py db init
4. 數據遷移,自動創建遷移代碼
$ python app.py db migrate
5. 更新資料庫
$ python app.py db upgrade
後面如果有Model變更的話,在開發環境下只需要重覆執行第4、5步即可。
而在伺服器端只需要執行第5步即可實現資料庫的遷移工作。