我目前在Spring中使用Scriptella。当我执行我的程序时,我想更改db模式并执行db的升级。除了一种使用ANT的方法之外,我没有找到任何相关的参考。db-upgrade example
想知道我们是否可以用新的alters和create语句编写像v1-v2.xml这样的单独的sql,并在spring context.xml中引用它?
我当前的spring context xml引用等..
<bean id="etlProgress" class="scriptella.interactive.ConsoleProgressIndicator"/>
<bean id="etlExecutor" class="scriptella.driver.spring.EtlExecutorBean">
<property name="configLocation" value="etl.xml"/>
<property name="progressIndicator"><ref local="etlProgress"/></property>
</bean>请帮帮忙好吗?
发布于 2015-04-14 13:21:01
我自己找到了答案。在etl.xml中,您可以添加一个查询"MetaInf“表的查询。在我的例子中,我有一个像这样的metainf表。
CREATE TABLE Metainf (
buildnum int primary key
);
INSERT INTO Metainf VALUES (1);这意味着,我必须查询"buildnum“来检查数据库的版本。这可以通过以下方式完成
<query>
<!-- Selects current DB build -->
SELECT * FROM Metainf
<!-- Check if upgrade is necessary -->
<script if="buildnum lt 1">
<!--Upgrades DB to build 1 -->
<!--...-->
<!-- Update Metainf to confirm successful upgrade -->
UPDATE Metainf SET buildnum=1;
</script>
<script if="buildnum eq 1">
<!-- upgrade scripts for subsequent builds -->
UPDATE Metainf SET buildnum=2;
</script>
</query>我放置了我的旧db文件,并在此更改后运行。瞧!我在数据库中有了新的更改。
正在寻找这个答案的人,请尝试让我知道它是否也适用于你。
谢谢
https://stackoverflow.com/questions/29619113
复制相似问题