我想設置跟蹤DB模式的變化,例如在this answer描述的一種機制:每個DDL SQL命令是否可逆? [數據庫版本控制]
對於每一個改變您對 數據庫,你寫一個新的遷移。 遷移通常有兩種方法: 採用「向上」方法,其中應用了更改 ,並且 中的「向下」方法取消了更改。一個單一的 命令將使數據庫達到 的日期,並且還可以用於將 數據庫帶入特定版本的 模式。
我的問題如下:每個DDL命令在「向上」的方法是否可逆?換句話說,我們總是可以提供一個「下」的方法嗎?你能想象任何不能「down」的DDL命令嗎?
請不要考慮典型的數據遷移問題,在「up」方法期間,我們會丟失數據:例如將字段類型從datetime
(DateOfBirth
)更改爲int
(YearOfBirth
),我們正在丟失無法恢復的數據。
即使將數據存儲到本地yml文件(請參閱https://github.com/tomkurt/Reversable-Data-Migration) – 2012-02-12 16:20:55