Java 如何在不同的模式中进行迁移?

Java 如何在不同的模式中进行迁移?,java,migration,flyway,Java,Migration,Flyway,我尝试将简单的sql内容迁移到Oracle 11gR2数据库中的不同模式。 我已经在spring上下文中为系统用户定义了一个数据源,此外,我还为目标模式设置了schemas参数 但这不起作用。所有表都将在系统架构中创建。将仅在架构[0]中创建我的迁移表。所有其他架构都为空 下面是我的代码片段: <bean id="flywaySYSTEM" class="com.googlecode.flyway.core.Flyway"> <property name="dataSo

我尝试将简单的sql内容迁移到Oracle 11gR2数据库中的不同模式。
我已经在spring上下文中为系统用户定义了一个数据源,此外,我还为目标模式设置了schemas参数

但这不起作用。所有表都将在系统架构中创建。将仅在架构[0]中创建我的迁移表。所有其他架构都为空

下面是我的代码片段:

<bean id="flywaySYSTEM" class="com.googlecode.flyway.core.Flyway">
    <property name="dataSource" ref="dsSYSTEM" />
    <property name="schemas">
        <list>
            <value>MZEB</value>
            <value>MZEB2</value>
        </list>
    </property>
</bean>


@Test
/**
 * Test with an local oracle database.
 */
public void createSchemasInOracle(){
    Flyway flySYSTEM = (Flyway)beanFactory.getBean("flywaySYSTEM");
    flySYSTEM.clean();
    flySYSTEM.migrate();
}
我的期望是这些sql文件将按照指定的模式执行

致以最良好的祝愿


Marcel

schemas属性告诉Flyway在何处创建元数据表以及使用哪些模式进行清理

在迁移中引用不固定的表名时,将使用该连接的默认模式。对于Oracle,这通常意味着当前用户

要解决您的问题,您可以执行以下操作之一

  • 更改数据库连接用户
  • 在表名前面加上它所属的架构
CREATE TABLE test_user (name VARCHAR(25) NOT NULL,PRIMARY KEY(name));