在我們當前的數據庫開發環境中,我們使用自動構建過程檢查svn create database腳本中的所有sql代碼,並將它們應用於各種開發/ qa數據庫。重新運行數據庫開發腳本
這是一切都很好,是一個tremdous改善了我們過去一樣,但我們有一個問題,重新運行的腳本。很顯然,這對於像改變程序這樣的一些腳本來說不是問題,因爲你可以一遍又一遍地運行它們而不會不利地影響系統。現在添加元數據並運行像create/alter table語句之類的語句,我們添加代碼來檢查並查看對象是否存在,如果存在,請不要運行它們。
我們的問題是,我們真的只有一次機會來運行腳本,因爲一旦腳本已經運行時,物體在環境中,系統不會再次運行該腳本。如果一旦部署後需要更改某些內容,我們就有一個難以運行更新腳本的過程,即更新腳本,希望所有內容都按照正確的順序排列,並且所有的PK都在環境之間排隊(數據庫是,我們應該說,「特別」)。
短刪除數據庫和從頭開始的過程(最後一個最新版本)的,沒有任何人有一個更優雅的解決方案呢?