我尝试将简单的sql东西迁移到Oracle 11gR2数据库中的不同模式 我已经在我的spring上下文中为系统用户定义了一个数据源,另外我已经为目标模式设置了schemas参数。
但这不起作用。将在系统架构中创建所有表。只有我的迁移表才会在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:
CREATE TABLE test_user (name VARCHAR(25) NOT NULL,PRIMARY KEY(name));
我的期望是这些sql文件将执行到指定的模式。
致以最诚挚的问候,
马塞尔
答案 0 :(得分:2)
schemas属性告诉Flyway创建元数据表的位置以及用于清理的模式。
在迁移中引用未加前缀的表名时,将使用该连接的默认架构。对于Oracle,这通常意味着当前用户。
要解决您的问题,您可以执行以下操作之一