0

我目前在 Spring 中使用 Scriptella ETL。我想在执行程序时更改数据库架构并升级数据库。除了使用 ANT 的方法外,我没有找到任何参考来执行此操作。 数据库升级示例

想知道我们是否可以使用新的更改和创建语句编写一个单独的 sql,如 v1-v2.xml,并在 spring context.xml 中引用它?

我当前的spring上下文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>

请问这里有什么帮助吗?

4

1 回答 1

0

自己找到了答案。在 etl.xml 中,您可以添加一个查询“MetaInf”表的查询。就我而言,我有一个像这样的 metaf 表。

    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>

我放置了旧的数据库文件并在此更改后运行。瞧!我在数据库中有新的更改。

正在寻找此答案的人,请尝试让我知道它是否也对您有用。

谢谢

于 2015-04-14T05:21:00.817 回答