ip6*_*696 5 java oracle11g flyway spring-boot
我正在尝试实施数据库迁移Flyway 4.2.0 + Oracle 11g
我有这个空架构:
当我尝试迁移时,Flyway 说:
原因::
org.flywaydb.core.api.FlywayException发现非空模式“PASHA”,没有元数据表!使用baseline()或设置baselineOnMigrate为true初始化元数据表。
这是配置:
@Bean(initMethod = "migrate")
Flyway flyway() {
Flyway flyway = new Flyway();
flyway.setBaselineOnMigrate(false);
flyway.setSchemas("PASHA");
flyway.setLocations("classpath:db/migration/oracle");
flyway.setDataSource("jdbc:oracle:thin:@host:1521:test", "login", "password");
return flyway;
}
Run Code Online (Sandbox Code Playgroud)
为什么我会收到此消息?我的基地是空的。
Flyway 本身使用查询来检查模式是否为空。
SELECT * FROM ALL_OBJECTS WHERE OWNER = ?
Run Code Online (Sandbox Code Playgroud)
执行该查询(用您的所有者代替?)并查看它是否返回某些内容(确实如此)。
例如,尚未清除的 LOB 会显示在那里。如果是这种情况,请尝试:
purge recyclebin;
Run Code Online (Sandbox Code Playgroud)
并且查询现在应该为空。
您需要让 Flyway 本身创建模式(意味着不应该事先创建“PASHA”模式),或者为现有模式设置基线(意味着使用 来设置您的配置flyway.setBaselineOnMigrate(true))。
基本上,Flyway 尝试创建一个已经存在的模式(在您的示例中为“PASHA”)。
| 归档时间: |
|
| 查看次数: |
7149 次 |
| 最近记录: |