Nazar - Melhorias
bug#12464 dev:trevezani qua: git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/BD/FlyWay/trunk@87514 d1611594-4594-4d17-8e1d-87c2c4800839master
parent
da4f03b58d
commit
5e4eaefbdd
|
@ -221,10 +221,20 @@ public class FlyWay {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
|
|
||||||
|
boolean existe = existeSchema(dataSource.getConnection());
|
||||||
|
|
||||||
|
if (existe) {
|
||||||
sb.append(" select nome as nome_arquivo, sql as sql_arquivo, sql_erro as erro, datahora_execucao as datahora");
|
sb.append(" select nome as nome_arquivo, sql as sql_arquivo, sql_erro as erro, datahora_execucao as datahora");
|
||||||
sb.append(" from flyway_scripts");
|
sb.append(" from flyway_scripts");
|
||||||
sb.append(" where activo = 1 and nome not in (select replace(\"script\", '.sql', '') from \"schema_version_cst\")");
|
sb.append(" where activo = 1 and nome not in (select replace(\"script\", '.sql', '') from \"schema_version_cst\")");
|
||||||
sb.append(" order by nome_arquivo");
|
sb.append(" order by nome_arquivo");
|
||||||
|
} else {
|
||||||
|
sb.append(" select nome as nome_arquivo, sql as sql_arquivo, sql_erro as erro, datahora_execucao as datahora");
|
||||||
|
sb.append(" from flyway_scripts");
|
||||||
|
sb.append(" where activo = 1");
|
||||||
|
sb.append(" order by nome_arquivo");
|
||||||
|
}
|
||||||
|
|
||||||
Connection c = dataSource.getConnection();
|
Connection c = dataSource.getConnection();
|
||||||
Statement s = c.createStatement();
|
Statement s = c.createStatement();
|
||||||
|
@ -307,4 +317,32 @@ public class FlyWay {
|
||||||
|
|
||||||
return retorno;
|
return retorno;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean existeSchema(Connection c) {
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
sb.append("SELECT count(table_name) as existe FROM all_tables WHERE table_name = 'schema_version_cst'");
|
||||||
|
|
||||||
|
try {
|
||||||
|
Statement s = c.createStatement();
|
||||||
|
ResultSet rs = s.executeQuery(sb.toString());
|
||||||
|
|
||||||
|
int existe = 0;
|
||||||
|
|
||||||
|
while (rs.next()) {
|
||||||
|
existe = rs.getInt("existe");
|
||||||
|
}
|
||||||
|
|
||||||
|
rs.close();
|
||||||
|
s.close();
|
||||||
|
|
||||||
|
if (existe > 0) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (SQLException e) {
|
||||||
|
log.error(e.getMessage(), e);
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue