??????????ù????Software Configuration Management??SCM????綨???????????????????????????а汾?????????????????????汾?????????????????????????????????????????????????????????ù???????????汾????????????????????????????棬?漰?????????????????汾??????????????????楨????????????????????ù??????????????????з??????????????????????????????????????
?????????汾???з????????????????????棬????????????????????????ù?????·???????????????????з???????δ??????????????????????Χ?????ù??????????????з??????е??????汾??????????????????????汾????????????????·???????????????????????
????????????????汾
???????????ù????μ??????汾?????????????
????1. ??????
?????????????????????????????????????Model??DDL??DML??????????????????Щ????????÷?????ù???????????????SVN??Git??????????????
????2. Change Set
????Change Set???????????С????????ChangeSet????????????????????????????????????????Change Set??????????£????Change Set??????ж????????????????????????????????????л????
????3. Baseline
????Baseline??????????????????????????????“????”??????????????????????????????????????Χ?????????Baseline??
?????????汾???????????????汾?????????????????????????????з???????γ???????????????????????????ж?????????????????????????????????????????2??????????Ч??????????????????????????????Э???????????????????????????汾??????????????????????6??
????????????????汾???????????????????????????????????????????????????????????????
???????緢???????????????汾?????????????????????2??????????汾????ж???θ??????????????????????й????в???????
???????????????????????汾????????????????п?????????????????e汾???????????????????????????????????????????′???????????????ж?
???????????????????????????????????????????????飬?????汾?????????????Ч??????????????????
?????????????????????ù??????????汾????????л?????????????汾????????ù???????????????
?????????????????ChangeSet??????????????????????????Change Set?????????????????????????????????????????????????
?????????·?????
????????????汾?????????????????????·??
??????????????????????????????????????????????????????????汾??????????????????????????????????????????????????????????????????????????????????????????????????????????е??????汾????????????????????????У?飬?????????????г???????
?????汾??????汾???????????????????????????????????????????????汾????????
?????汾??£??汾????????????汾????????£?

?????汾?????????????????°汾???????????????汾?????????汾
?????汾???????汾???????????????????????????????????á??汾????????ó?????????????θ????????????????????汾??????????????汾???????????????????У?????????????????????????????????????????????????·??????????????汾???????汾?????汾?????????????汾??????????Ч???????汾?????£?

?????????????????????汾???????汾?????????????????汾λ????????汾??????????????汾???????????е?System002~System006????????????汾??????????????????????
??????????????·????????????????????汾??????????
?????汾??????????????汾????
?????汾У?飺??θ??o??????????汾У???ж???θ???/????????汾??????????????汾?????????????β???????Ч??
?????汾???£??汾У????????????????汾????2???
?????汾????????????????????????汾?????????????????????
?????汾???????????ù?????????????????????
?????????????????????????Contraction scripts??Expansion scripts?????????????????????????????????????????????????е???????????????????????汾??????????????Contraction scripts????????Change Set???????Expansion scripts??
?????????????????
???????????????????????????????汾??????????????????????????????sql???????·?ο?????????????????
????1. ?汾??
????????????????汾?????洢?????汾????e汾???а???:
?????????汾????ζ?????
????С???????汾???????????
?????汾?????????????θ??μ?????
?????????汾???????????汾???Mysql?μ?汾????????????£?
????[sql] view plaincopy
????CREATE TABLE `db_version` (
????`DATABASE_VERSION` varchar(30) NOT NULL??
????`MIN_SERVER_VERSION` varchar(30) NOT NULL??
????`UPDATE_DESCRIPTION` varchar(200) NOT NULL
????) ENGINE=InnoDB DEFAULT CHARSET=utf8;
????INSERTINTO `db_version` VALUES (MC-1.0.0-0001?? MC-1.0.0-0001?? '???????');
????????汾???汾?????????????????????汾 < С???????汾?????????????
????2.?汾У??
?????汾У??????θ??μ????汾????????е???汾?????£????????????ж???£????????Mysql??????洢??????а汾У??????ο???
????[sql] view plaincopy
????CREATE PROCEDURE MOBILECLINIC_CHECK_VERSION(P_PRE_VERSION VARCHAR(50))
????BEGIN
????DECLARE L_VER_NAME VARCHAR(30) ;
????DECLARE L_PRE_VERSION  VARCHAR(50);
????SET L_VER_NAME = 'MobileClinic';
????SELECT DATABASE_VERSION INTO L_PRE_VERSION FROM DB_VERSION WHERE NAME = L_VER_NAME;
????SELECT L_PRE_VERSION as '????汾'?? P_PRE_VERSION as '???汾';
????IF P_PRE_VERSION <> L_PRE_VERSION THEN
????select mysql_error();
????END IF;
????END;
????3.?汾????
?????汾??????????汾????????°汾?????????????????????·?????С?汾????磺
????[sql] view plaincopy
????call MOBILECLINIC_CHECK_VERSION('MC-1.0.0-0002');
????update DB_VERSION d set d.DATABASE_VERSION = 'MC-1.0.0-0003' ?? d.MIN_SERVER_VERSION = 'MC-1.0.0-0003' ??d.UPDATE_DESC = '??????' ??d.UPDATE_TIME = SYSDATE() ;