如何在不同的模式中进行迁移?
Posted
技术标签:
【中文标题】如何在不同的模式中进行迁移?【英文标题】:How it is possible to do a migration in different schemas? 【发布时间】:2012-02-23 06:39:10 【问题描述】:我尝试将简单的 sql 内容迁移到 Oracle 11gR2 数据库中的不同模式。 我已经在我的 spring 上下文中为系统用户定义了一个数据源,此外我还为目标模式设置了 schemas 参数。
但这不起作用。所有表都将在系统模式中创建。只有我的迁移表会在 schemas[0] 中创建。所有其他模式都是空的。
我的代码 sn-ps 来了:
<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 文件将执行到指定的架构。
最好的问候,
马塞尔
【问题讨论】:
【参考方案1】:schemas 属性告诉 Flyway 在哪里创建元数据表以及使用哪些模式进行清理。
当您在迁移中引用不带前缀的表名时,将使用该连接的默认架构。对于 Oracle,这通常意味着当前用户。
要解决您的问题,您可以执行以下操作之一
更改数据库连接用户 在表名前加上它所属的架构【讨论】:
以上是关于如何在不同的模式中进行迁移?的主要内容,如果未能解决你的问题,请参考以下文章
Redis技术探索「数据迁移实战」手把手教你如何实现在线+离线模式进行迁移Redis数据实战指南(在线同步数据)
Redis 技术探索「数据迁移实战」手把手教你如何实现在线 + 离线模式进行迁移 Redis 数据实战指南(scan模式迁移)
Redis技术探索「数据迁移实战」手把手教你如何实现在线 + 离线模式进行迁移Redis数据实战指南(离线同步数据)
Redis 技术探索「数据迁移实战」手把手教你如何实现在线 + 离线模式进行迁移 Redis 数据实战指南(数据检查对比)
Redis 技术探索「数据迁移实战」手把手教你如何实现在线+离线模式进行迁移Redis数据实战指南(离线同步数据)
Redis 技术探索「数据迁移实战」手把手教你如何实现在线 + 离线模式进行迁移 Redis 数据实战指南(数据检查对比)