在维护数据库升级的过程中,会产生n个脚本。谈谈我所处的项目背景,项目数据库最早版本假定为1,最后在多次维护后,版本号,可能变更为16.那么针对项目上不同的数据库版本,如何来进行升级呢?
我使用的升级策略是,执行v1.sql,得到版本1,再执行v2.sql,得到版本2,按照此方式升级数据库至指定的版本。版本号预先存储在数据库中,根据当前版本号,以及目标版本号,即可得到需要执行的SQL脚本。
通过C#的Process命令,调用SQLPlus并给它传递参数,执行的命令为:
"SqlPlus /nolog @run.sql"
而run.sql的内容则是通过查询到数据库的版本号,确定需要执行的脚本,示例如下
@@v1.sql; @@v2.sql; @@v3.sql; @@v4.sql; @@v5.sql; @@v6.sql;
其中@@表示和宿主脚本run.sql处于同一路径下。