目錄
文章目錄
- 目錄
- 什么是 DDL?
- 為什么需要 DDL 版本控制?
- 常見的 DDL 版本控制軟體
- Alembic
- GORM
什么是 DDL?
DDL(資料定義語言):用來創建資料庫中的各種物件,例如:表、視圖、索引、同義詞、聚簇等,對應的指令為:CREATE TABLE、VIEW、INDEX、SYN、CLUSTER 等,注意,DDL 操作在 RDBMS 層面是隱性提交的,不能 Rollback,但資料庫應用程式可以顯示的執行 “洗掉” 實作 Rollback 的效果,
為什么需要 DDL 版本控制?
資料庫應用軟體的版本迭代程序中難免需要修改 ORM 的資料模型(Data Model)即 DLL,例如:添加一個表、添加一個欄位、修改一個欄位的屬性等,
然而在生產環境中,這些 DDL 操作不可以影響到現存的生成資料記錄,這里就會出現一個需求:怎樣在保證原有生產資料完整性的情況下對資料庫進行升級,或回滾到之前的某一個時刻以復現環境,這就是需要 DLL 版本控制的緣由,
參見《Openstack_SQLAlchemy 修改資料庫的表結構》一文,
常見的 DDL 版本控制軟體
Alembic
在 Python 生態中,SQLAlchemy 是一款非常優秀的 ORM 框架,但其本身沒有提供資料庫版本控制功能,所以 SQLAlchemy 的開發者就再開發了 Alembic 這一款 Database Migration(資料遷移跟蹤記錄)軟體來彌補這一缺失,
參見《用 Flask 來寫個輕博客 (8) — (M)VC_Alembic 管理資料庫結構的升級和降級》一文,
GORM
在 Golang 生態中,GORM 同樣是一款優秀的 ORM 框架,并且自身提供了 Migrator 的功能,包括:AutoMigrate 和 DDL 操作方法兩個層面,
參見《Go 語言編程 — gorm 資料庫版本遷移》一文,
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/166650.html
標籤:其他
