mirror of
https://github.com/open-metadata/OpenMetadata.git
synced 2025-12-27 15:38:43 +00:00
Fix migration for postgres db (#15009)
* Fix openmetadata-ops.sh migrate for Postgres * Fix openmetadata-ops.sh migrate for Postgres
This commit is contained in:
parent
b91a689399
commit
5839efcbf1
@ -71,10 +71,10 @@ public interface MigrationDAO {
|
||||
@ConnectionAwareSqlUpdate(
|
||||
value =
|
||||
"INSERT INTO server_change_log (version, migrationFileName, checksum, metrics, installed_on)"
|
||||
+ "VALUES (:version, :migrationFileName, :checksum, to_jsonb(:metrics::text), current_timestamp) "
|
||||
+ "VALUES (:version, :migrationFileName, :checksum, (:metrics :: jsonb), current_timestamp) "
|
||||
+ "ON CONFLICT (version) DO UPDATE SET "
|
||||
+ "migrationFileName = EXCLUDED.migrationFileName, "
|
||||
+ "metrics = to_jsonb(:metrics::text),"
|
||||
+ "metrics = (:metrics :: jsonb),"
|
||||
+ "checksum = EXCLUDED.checksum, "
|
||||
+ "installed_on = EXCLUDED.installed_on",
|
||||
connectionType = POSTGRES)
|
||||
@ -124,7 +124,8 @@ public interface MigrationDAO {
|
||||
String checkIfQueryPreviouslyRan(@Bind("checksum") String checksum);
|
||||
|
||||
@SqlQuery(
|
||||
"SELECT installed_rank, version, migrationFileName, checksum, installed_on, metrics FROM SERVER_CHANGE_LOG ORDER BY version ASC")
|
||||
value =
|
||||
"SELECT installed_rank, version, migrationFileName, checksum, installed_on, metrics FROM SERVER_CHANGE_LOG ORDER BY version ASC")
|
||||
@RegisterRowMapper(FromServerChangeLogMapper.class)
|
||||
List<ServerChangeLog> listMetricsFromDBMigrations();
|
||||
|
||||
|
||||
@ -443,19 +443,26 @@ public class OpenMetadataOperations implements Callable<Integer> {
|
||||
migrationDAO.listMetricsFromDBMigrations();
|
||||
Set<String> columns = new LinkedHashSet<>(Set.of("version", "installedOn"));
|
||||
List<List<String>> rows = new ArrayList<>();
|
||||
for (MigrationDAO.ServerChangeLog serverChangeLog : serverChangeLogs) {
|
||||
List<String> row = new ArrayList<>();
|
||||
JsonObject metricsJson = new Gson().fromJson(serverChangeLog.getMetrics(), JsonObject.class);
|
||||
Set<String> keys = metricsJson.keySet();
|
||||
columns.addAll(keys);
|
||||
row.add(serverChangeLog.getVersion());
|
||||
row.add(serverChangeLog.getInstalledOn());
|
||||
row.addAll(
|
||||
metricsJson.entrySet().stream()
|
||||
.map(Map.Entry::getValue)
|
||||
.map(JsonElement::toString)
|
||||
.toList());
|
||||
rows.add(row);
|
||||
try {
|
||||
for (MigrationDAO.ServerChangeLog serverChangeLog : serverChangeLogs) {
|
||||
List<String> row = new ArrayList<>();
|
||||
if (serverChangeLog.getMetrics() != null) {
|
||||
JsonObject metricsJson =
|
||||
new Gson().fromJson(serverChangeLog.getMetrics(), JsonObject.class);
|
||||
Set<String> keys = metricsJson.keySet();
|
||||
columns.addAll(keys);
|
||||
row.add(serverChangeLog.getVersion());
|
||||
row.add(serverChangeLog.getInstalledOn());
|
||||
row.addAll(
|
||||
metricsJson.entrySet().stream()
|
||||
.map(Map.Entry::getValue)
|
||||
.map(JsonElement::toString)
|
||||
.toList());
|
||||
rows.add(row);
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
LOG.warn("Failed to generate migration metrics due to", e);
|
||||
}
|
||||
printToAsciiTable(columns.stream().toList(), rows, "No Server Change log found");
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user