作者pakker (找寻蔚蓝天空)
看板Database
标题Re: [系统] Stored Proc 或是 Trigger 的版本管理
时间Mon Dec 17 20:25:35 2007
※ 引述《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)