好文分享 — Handling Database Migrations with Alembic

Python 目前最知名的 ORM library 當屬 SQLAlchemy, 不過 SQLAlchemy 並不負責 database migration 的部分,也就是說資料庫新增/刪除什麼表格、表格新增刪除修改什麼欄位,都得由開發者自行負責。

擁有成熟的開發流程團隊都會使用工具管理 database migration 的所有歷程,就像使用版本控制一樣,在哪個版本新增資料庫新增/刪除什麼表格、表格新增刪除修改什麼欄位都會記錄下來,並且擁有自由切換版本的能力(除非有十分必要,才會切回舊版本,一般都是執行版本升級)。

database migration 工具的運作原理也很簡單,主要是每個版本都會紀錄執行什麼 SQL 指令、程式碼,以及紀錄回復到舊版本需要執行的 SQL 指令與程式碼,可以簡單理解為 upgrade, downgrade 2 個步驟。

SQLAlchemy 也有配套的 database migration 工具 — Alembic, 其英文原意為蒸餾器,拿來與原意為煉金術的 Alchemy 搭配真是再適合不過了。

Alembic 的運作原理就如同前文所述,主要是每個版本是 1 個 Python Script, 裡面記錄當前版本編號、舊版本編號,以及 upgrade()downgrade() 2 個函數,執行 upgrade() 會升級到當前版本,執行 downgrade() 會降級回舊版本,只要理解這些概念,就能輕鬆上手 Alembic 這類 database migration 工具。

如果對於 Alembic 有興趣的話,可以從 “Handling Database Migrations with Alembic” 1 文開始入門。

FOLLOW US

對抗久坐職業傷害

研究指出每天增加 2 小時坐著的時間,會增加大腸癌、心臟疾病、肺癌的風險,也造成肩頸、腰背疼痛等常見問題。

然而對抗這些問題,卻只需要工作時定期休息跟伸展身體即可!

你想輕鬆改變現狀嗎?試試看我們的 PomodoRoll 番茄鐘吧! PomodoRoll 番茄鐘會根據你所設定的專注時間,定期建議你 1 項辦公族適用的伸展運動,幫助你打敗久坐所帶來的傷害!

贊助我們的創作

看完這篇文章了嗎? 休息一下,喝杯咖啡吧!

如果你覺得 MyApollo 有讓你獲得實用的資訊,希望能看到更多的技術分享,邀請你贊助我們一杯咖啡,讓我們有更多的動力與精力繼續提供高品質的文章,感謝你的支持!