蒸餾器是一個新的數據庫遷移工具,寫的SQLAlchemy筆者  A遷移工具提供以下功能:
- 可以發射的ALTER語句的數據庫,以改變的表和其它結構的結構
- 提供了一個制度,即“遷移腳本”可以構造;每個腳本表示一個特定的一系列步驟,可以“升級”目標數據庫到一個新的版本,以及可選的一系列步驟,可以“降級”同樣,在做反向相同的步驟。
- 允許腳本以某種順序方式執行。
蒸餾器的目標是:
- 非常開放式和透明的配置和操作。一個新的蒸餾器環境從中選擇在一組選項設置時,第一次出現一組模板生成的。模板然後存了一系列的定義完全數據庫怎麼連接的建立以及如何遷移腳本調用腳本;從一系列的腳本中的模板生成遷移腳本本身。該腳本可以被進一步定制來定義數據庫究竟如何將互動與什麼結構的新的遷移文件應該採取。
- 用於交易DDL全面支持。默認腳本確保所有遷移事務內發生 - 對於那些支持這個(PostgreSQL中,Microsoft SQL Server的)數據庫,遷移可以無需手動撤消失敗時的變化進行測試。
- 極簡的腳本建設。像重命名表/列,添加/刪除列,可通過一條線進行改變列屬性基本操作命令,如alter_column(),rename_table(),add_constraint()。沒有必要重新充滿SQLAlchemy的表結構一樣,這些簡單的操作 - 該函數本身生成的幕後極簡模式結構來實現給定的DDL序列。
- “自動生成”遷移。而現實世界遷移遠比什麼可以自動確定更加複雜,蒸餾器仍可以消除在從改變的模式生成新的遷移指示初始繁重的工作。該--autogenerate功能將使用的SQLAlchemy的模式檢測功能檢查數據庫的當前狀態,如Python的規定比較它的數據庫模型的當前狀態,並產生了一系列的“候選人”的遷移,使它們成為一個新的遷移腳本的Python指令。顯影劑然後編輯新的文件,增加額外的指令,並根據需要進行數據遷移,以生產出成品遷移。表和列級變化可以檢測,具有約束和索引跟隨為好。
- 對於作為SQL腳本生成遷移的全面支持。我們這些誰在企業環境中工作,知道直接訪問DDL命令在生產數據庫是一個難得的特權,和DBA想要文本SQL腳本。蒸餾器的使用模式和命令是面向能夠因為它直接運行它們到數據庫運行一系列遷移到一個文本輸出文件一樣容易。必須小心,在此模式下不能調用依賴於內存選擇行的其他業務 - 蒸餾器試圖提供輔助構建像bulk_insert(),以幫助面向數據的操作與基於腳本的DDL兼容。
- 非線性版本。腳本中給出的UUID標識符類似於一個DVCS,一個腳本的到下連桿經由腳本本身內的標記來實現。通過這種開放式的機制,包含其它遷移腳本的分支可以被合併 - 的聯繫可以手動腳本文件內編輯以創建新的序列。
- 提供ALTER構建體,可用於通過任何SQLAlchemy的應用程序的庫。所述構建體的DDL建立在SQLAlchemy的自身DDLElement基,並且可以通過任何應用程序或腳本獨立使用。
- 不要過度的SQLite無力ALTER事情打破我們的脖子。 SQLite的對表或列的改動幾乎沒有支持。這是設計的SQLite的開發者,所以蒸餾器foregoes實施尷尬和不良功能的解決方法這個平台。如果你是認真的架構遷移,使用的數據庫是同樣嚴重!
蒸餾器的文檔和地位是http://packages.python.org/alembic/.
Requirements:
- Python
評論沒有發現