※ 引述《tier07 (tier07)》之銘言:
: ※ 引述《tier07 (tier07)》之銘言:
: : 請問大家的 Stored Proc, Trigger 有用版本管理系統來管理嗎(CVS, SVN or 微軟的) ?
: : 可以用來比較各版本的差異
: : 不管是, SQL Server, MySQL, Oracle,..
: : 想聽聽大家的意見
: 有朋友問到,
: 怎麼用 CVS, SVN 來管理呀? 是不是要存成檔案?
: 目前, 是要存成檔案沒錯,
: 我都懶得存, 所以問問看, 大家是怎麼做版本管理 ?
我的做法是把 scheme 都寫在檔案裡,
而測試好的 trigger, sp(pl/sql類的) 也是存在檔案裡.
因為我的資料庫不只一台主機, 需要修改資料庫 scheme 時所有的主機都要修改,
所以其實是以 cvs 為主, 最新版本的 scheme/trigger/sp 都是在 cvs 上,
檔名就像 scheme_define.sql 這樣...
當我需要建新的資料庫時,
只要將最新版本的 scheme_define.sql export出來匯入就行了
而升級資料庫的部分則是看 ci msg 來決定要下哪些 alter 的 sql,
當然其實這部分有另一個檔案叫 scheme_update.sql
在我寫好新版本的 scheme_define.sql 時, 就會寫一個升級用的 scheme_update.sql
所以要升級時只要將最新版本的scheme_update.sql與當前資料庫版本做 diff
就可以得知需要下哪些 sql 來做 update
至於用 c 寫的 trigger/sp, 本身就是個 source file,
所以用 cvs 就很正常了
另外, 我是偏好使用 svn, 因為 svn 是整個 repository 的版本向前,
不像 cvs 是每個檔案各有各自的版本,
這樣我比較難用版本編號去找出所有檔案的對應關係
像是trigger_abc.c v1.24與scheme_update.sql v1.84這兩者間的關係看不太出來,
用時間的話也很難說有絕對的關係...
如果用 svn, 我直接指定我要哪個版本與哪個版本的 diff,
而不用在乎 commit 的時間問題
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.121.16.42
※ 編輯: pakker 來自: 59.121.16.42 (12/17 20:48)