Fix Test Suite Migrations (#12934)

This commit is contained in:
Mohit Yadav 2023-08-21 14:34:58 +05:30 committed by GitHub
parent f7e2ae0bb6
commit c101b3c9d1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 95 additions and 2 deletions

View File

@ -0,0 +1,32 @@
package org.openmetadata.service.migration.mysql.v112;
import static org.openmetadata.service.migration.postgres.v112.Migration.unquoteTestSuiteMigration;
import lombok.SneakyThrows;
import org.jdbi.v3.core.Handle;
import org.openmetadata.service.jdbi3.CollectionDAO;
import org.openmetadata.service.migration.api.MigrationProcessImpl;
import org.openmetadata.service.migration.utils.MigrationFile;
public class Migration extends MigrationProcessImpl {
private CollectionDAO collectionDAO;
private Handle handle;
public Migration(MigrationFile migrationFile) {
super(migrationFile);
}
@Override
public void initialize(Handle handle) {
super.initialize(handle);
this.handle = handle;
this.collectionDAO = handle.attach(CollectionDAO.class);
}
@Override
@SneakyThrows
public void runDataMigration() {
// Run Data Migration to Remove the quoted Fqn`
unquoteTestSuiteMigration(collectionDAO);
}
}

View File

@ -0,0 +1,58 @@
package org.openmetadata.service.migration.postgres.v112;
import java.util.List;
import java.util.Set;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.jdbi.v3.core.Handle;
import org.openmetadata.schema.tests.TestSuite;
import org.openmetadata.schema.type.Include;
import org.openmetadata.service.jdbi3.CollectionDAO;
import org.openmetadata.service.jdbi3.ListFilter;
import org.openmetadata.service.jdbi3.TestSuiteRepository;
import org.openmetadata.service.migration.api.MigrationProcessImpl;
import org.openmetadata.service.migration.utils.MigrationFile;
import org.openmetadata.service.util.EntityUtil;
@Slf4j
public class Migration extends MigrationProcessImpl {
private CollectionDAO collectionDAO;
private Handle handle;
public Migration(MigrationFile migrationFile) {
super(migrationFile);
}
@Override
public void initialize(Handle handle) {
super.initialize(handle);
this.handle = handle;
this.collectionDAO = handle.attach(CollectionDAO.class);
}
@Override
@SneakyThrows
public void runDataMigration() {
// Run Data Migration to Remove the quoted Fqn`
unquoteTestSuiteMigration(collectionDAO);
}
public static void unquoteTestSuiteMigration(CollectionDAO collectionDAO) {
TestSuiteRepository testSuiteRepository = new TestSuiteRepository(collectionDAO);
List<TestSuite> testSuites =
testSuiteRepository.listAll(new EntityUtil.Fields(Set.of("id")), new ListFilter(Include.ALL));
for (TestSuite suite : testSuites) {
if (Boolean.TRUE.equals(suite.getExecutable())) {
String fqn = suite.getFullyQualifiedName();
String updatedFqn = fqn;
if (fqn.startsWith("\"") && fqn.endsWith("\"")) {
updatedFqn = fqn.substring(1, fqn.length() - 1);
}
// update the name and fqn
suite.setName(updatedFqn);
suite.setFullyQualifiedName(updatedFqn);
collectionDAO.testSuiteDAO().update(suite);
}
}
}
}

View File

@ -4,7 +4,6 @@ import java.io.File;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.nio.file.Paths; import java.nio.file.Paths;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.List; import java.util.List;
import org.flywaydb.core.api.configuration.ClassicConfiguration; import org.flywaydb.core.api.configuration.ClassicConfiguration;
import org.flywaydb.core.api.configuration.Configuration; import org.flywaydb.core.api.configuration.Configuration;
@ -148,7 +147,11 @@ public class MigrationFile implements Comparable<MigrationFile> {
} }
private String getVersionPackageName() { private String getVersionPackageName() {
return "v" + Arrays.toString(versionNumbers); StringBuilder arrayAsString = new StringBuilder();
for (int i = 0; i < versionNumbers.length; i++) {
arrayAsString.append(versionNumbers[i]);
}
return "v" + arrayAsString;
} }
private boolean checkIfQueryPreviouslyRan(String query) { private boolean checkIfQueryPreviouslyRan(String query) {