我目前在Spring使用Scriptella ETL。我想在执行程序时更改db模式并执行db的升级。除了使用ANT的方法之外,我没有找到任何参考。 db-upgrade example
想知道我们是否可以使用new alters和create语句编写一个单独的sql,如v1-v2.xml,并在spring context.xml中引用它?
我当前的春天上下文xml引用etl ..
<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>
这里有任何帮助吗?
答案 0 :(得分:0)
自己找到答案。在etl.xml中,您可以添加查询&#34; MetaInf&#34;表。就我而言,我有一个像这样的metainf表。
CREATE TABLE Metainf (
buildnum int primary key
);
INSERT INTO Metainf VALUES (1);
这意味着,我必须查询&#34; buildnum&#34;检查数据库的版本。这可以通过以下方式完成
<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文件并在此更改后运行。瞧!我在数据库中进行了新的更改。
正在寻找这个答案的人,请尝试让我知道它是否也适合你。
由于