aboutsummaryrefslogtreecommitdiffstats
path: root/server/sonar-db-dao
diff options
context:
space:
mode:
authorClaire Villard <claire.villard@sonarsource.com>2024-10-01 18:42:45 +0200
committersonartech <sonartech@sonarsource.com>2024-10-14 20:03:02 +0000
commitd7c1632113c8c1fe15766e3728a831a146c1de21 (patch)
tree4841a280c7c4f2c88511a31b3747decc50a350f1 /server/sonar-db-dao
parentf135567f2bc832f2a24c4cf3d32d0b53d6f22cf8 (diff)
downloadsonarqube-d7c1632113c8c1fe15766e3728a831a146c1de21.tar.gz
sonarqube-d7c1632113c8c1fe15766e3728a831a146c1de21.zip
SONAR-23213 'api/system/migrate_measures' endpoint
Diffstat (limited to 'server/sonar-db-dao')
-rw-r--r--server/sonar-db-dao/src/main/java/org/sonar/db/component/BranchDao.java23
-rw-r--r--server/sonar-db-dao/src/main/java/org/sonar/db/component/BranchMapper.java6
-rw-r--r--server/sonar-db-dao/src/main/java/org/sonar/db/portfolio/PortfolioDao.java23
-rw-r--r--server/sonar-db-dao/src/main/java/org/sonar/db/portfolio/PortfolioMapper.java6
-rw-r--r--server/sonar-db-dao/src/main/resources/org/sonar/db/component/BranchMapper.xml41
-rw-r--r--server/sonar-db-dao/src/main/resources/org/sonar/db/portfolio/PortfolioMapper.xml46
-rw-r--r--server/sonar-db-dao/src/test/java/org/sonar/db/component/BranchDaoTest.java93
-rw-r--r--server/sonar-db-dao/src/test/java/org/sonar/db/portfolio/PortfolioDaoTest.java82
8 files changed, 267 insertions, 53 deletions
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/component/BranchDao.java b/server/sonar-db-dao/src/main/java/org/sonar/db/component/BranchDao.java
index 9bc71dc3534..402e09abe5f 100644
--- a/server/sonar-db-dao/src/main/java/org/sonar/db/component/BranchDao.java
+++ b/server/sonar-db-dao/src/main/java/org/sonar/db/component/BranchDao.java
@@ -19,6 +19,7 @@
*/
package org.sonar.db.component;
+import com.google.common.annotations.VisibleForTesting;
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
@@ -136,6 +137,24 @@ public class BranchDao implements Dao {
return mapper(session).countByNeedIssueSync(needIssueSync);
}
+ public List<String> selectUuidsWithMeasuresMigratedFalse(DbSession session, int limit) {
+ return mapper(session).selectUuidsWithMeasuresMigratedFalse(limit);
+ }
+
+ public int countByMeasuresMigratedFalse(DbSession session) {
+ return mapper(session).countByMeasuresMigratedFalse();
+ }
+
+ public long updateMeasuresMigrated(DbSession dbSession, String branchUuid, boolean measuresMigrated) {
+ long now = system2.now();
+ return mapper(dbSession).updateMeasuresMigrated(branchUuid, measuresMigrated, now);
+ }
+
+ @VisibleForTesting
+ boolean isMeasuresMigrated(DbSession dbSession, String uuid) {
+ return mapper(dbSession).isMeasuresMigrated(uuid);
+ }
+
public int countAll(DbSession session) {
return mapper(session).countAll();
}
@@ -178,8 +197,4 @@ public class BranchDao implements Dao {
return false;
}
- public long updateMeasuresMigrated(DbSession dbSession, String branchUuid, boolean measuresMigrated) {
- long now = system2.now();
- return mapper(dbSession).updateMeasuresMigrated(branchUuid, measuresMigrated, now);
- }
}
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/component/BranchMapper.java b/server/sonar-db-dao/src/main/java/org/sonar/db/component/BranchMapper.java
index 24cdbacc68c..95adbb62244 100644
--- a/server/sonar-db-dao/src/main/java/org/sonar/db/component/BranchMapper.java
+++ b/server/sonar-db-dao/src/main/java/org/sonar/db/component/BranchMapper.java
@@ -73,4 +73,10 @@ public interface BranchMapper {
short doAnyOfComponentsNeedIssueSync(@Param("componentKeys") List<String> components);
int updateMeasuresMigrated(@Param("uuid") String uuid, @Param("measuresMigrated") boolean measuresMigrated, @Param("now") long now);
+
+ boolean isMeasuresMigrated(String uuid);
+
+ List<String> selectUuidsWithMeasuresMigratedFalse(int limit);
+
+ int countByMeasuresMigratedFalse();
}
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/portfolio/PortfolioDao.java b/server/sonar-db-dao/src/main/java/org/sonar/db/portfolio/PortfolioDao.java
index cbcfd25b3c6..0a6863b6fe6 100644
--- a/server/sonar-db-dao/src/main/java/org/sonar/db/portfolio/PortfolioDao.java
+++ b/server/sonar-db-dao/src/main/java/org/sonar/db/portfolio/PortfolioDao.java
@@ -19,6 +19,7 @@
*/
package org.sonar.db.portfolio;
+import com.google.common.annotations.VisibleForTesting;
import java.util.List;
import java.util.Optional;
import java.util.Set;
@@ -253,6 +254,24 @@ public class PortfolioDao implements Dao {
mapper(dbSession).deleteBranch(portfolioUuid, projectUuid, branchUuid);
}
+ public long updateMeasuresMigrated(DbSession dbSession, String branchUuid, boolean measuresMigrated) {
+ long now = system2.now();
+ return mapper(dbSession).updateMeasuresMigrated(branchUuid, measuresMigrated, now);
+ }
+
+ public List<String> selectUuidsWithMeasuresMigratedFalse(DbSession session, int limit) {
+ return mapper(session).selectUuidsWithMeasuresMigratedFalse(limit);
+ }
+
+ public int countByMeasuresMigratedFalse(DbSession session) {
+ return mapper(session).countByMeasuresMigratedFalse();
+ }
+
+ @VisibleForTesting
+ boolean isMeasuresMigrated(DbSession dbSession, String uuid) {
+ return mapper(dbSession).isMeasuresMigrated(uuid);
+ }
+
/*
* Utils
*/
@@ -268,8 +287,4 @@ public class PortfolioDao implements Dao {
return portfolioDto.isRoot() ? Qualifiers.VIEW : Qualifiers.SUBVIEW;
}
- public long updateMeasuresMigrated(DbSession dbSession, String branchUuid, boolean measuresMigrated) {
- long now = system2.now();
- return mapper(dbSession).updateMeasuresMigrated(branchUuid, measuresMigrated, now);
- }
}
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/portfolio/PortfolioMapper.java b/server/sonar-db-dao/src/main/java/org/sonar/db/portfolio/PortfolioMapper.java
index 2e273acc6d7..1dbb66749bb 100644
--- a/server/sonar-db-dao/src/main/java/org/sonar/db/portfolio/PortfolioMapper.java
+++ b/server/sonar-db-dao/src/main/java/org/sonar/db/portfolio/PortfolioMapper.java
@@ -113,4 +113,10 @@ public interface PortfolioMapper {
List<PortfolioDto> selectRootOfReferencersToAppBranch(@Param("appUuid") String appUuid, @Param("appBranchKey") String appBranchKey);
int updateMeasuresMigrated(@Param("uuid") String uuid, @Param("measuresMigrated") boolean measuresMigrated, @Param("now") long now);
+
+ List<String> selectUuidsWithMeasuresMigratedFalse(int limit);
+
+ int countByMeasuresMigratedFalse();
+
+ boolean isMeasuresMigrated(@Param("uuid") String branchUuid);
}
diff --git a/server/sonar-db-dao/src/main/resources/org/sonar/db/component/BranchMapper.xml b/server/sonar-db-dao/src/main/resources/org/sonar/db/component/BranchMapper.xml
index eafb0b008cb..238da88d1bd 100644
--- a/server/sonar-db-dao/src/main/resources/org/sonar/db/component/BranchMapper.xml
+++ b/server/sonar-db-dao/src/main/resources/org/sonar/db/component/BranchMapper.xml
@@ -256,4 +256,45 @@
where
uuid = #{uuid, jdbcType=VARCHAR}
</update>
+
+ <select id="isMeasuresMigrated" resultType="boolean">
+ select
+ pb.measures_migrated
+ from project_branches pb
+ where
+ pb.uuid = #{uuid, jdbcType=VARCHAR}
+ </select>
+
+ <select id="selectUuidsWithMeasuresMigratedFalse" resultType="java.lang.String" parameterType="int">
+ SELECT pb.uuid
+ FROM project_branches pb
+ WHERE pb.measures_migrated = ${_false}
+ ORDER BY pb.uuid ASC
+ LIMIT #{limit}
+ </select>
+
+ <select id="selectUuidsWithMeasuresMigratedFalse" resultType="java.lang.String" parameterType="int" databaseId="oracle">
+ SELECT * FROM (
+ SELECT pb.uuid
+ FROM project_branches pb
+ WHERE pb.measures_migrated = ${_false}
+ ORDER BY pb.uuid ASC
+ ) WHERE rownum &lt;= #{limit}
+ </select>
+
+ <select id="selectUuidsWithMeasuresMigratedFalse" resultType="java.lang.String" parameterType="int" databaseId="mssql">
+ SELECT top(#{limit, jdbcType=INTEGER}) pb.uuid
+ FROM project_branches pb
+ WHERE pb.measures_migrated = ${_false}
+ ORDER BY pb.uuid ASC
+ </select>
+
+ <select id="countByMeasuresMigratedFalse" resultType="int">
+ select
+ count(pb.uuid)
+ from project_branches pb
+ where
+ pb.measures_migrated = ${_false}
+ </select>
+
</mapper>
diff --git a/server/sonar-db-dao/src/main/resources/org/sonar/db/portfolio/PortfolioMapper.xml b/server/sonar-db-dao/src/main/resources/org/sonar/db/portfolio/PortfolioMapper.xml
index 832fc96bb4a..db973bc0b50 100644
--- a/server/sonar-db-dao/src/main/resources/org/sonar/db/portfolio/PortfolioMapper.xml
+++ b/server/sonar-db-dao/src/main/resources/org/sonar/db/portfolio/PortfolioMapper.xml
@@ -544,6 +544,50 @@
measures_migrated = #{measuresMigrated, jdbcType=BOOLEAN},
updated_at = #{now, jdbcType=BIGINT}
where
- uuid = #{uuid, jdbcType=VARCHAR}
+ root_uuid = #{uuid, jdbcType=VARCHAR}
</update>
+
+ <select id="selectUuidsWithMeasuresMigratedFalse" resultType="java.lang.String" parameterType="int">
+ SELECT p.uuid
+ FROM portfolios p
+ WHERE p.measures_migrated = ${_false}
+ AND p.parent_uuid is null
+ ORDER BY p.uuid ASC
+ LIMIT #{limit}
+ </select>
+
+ <select id="selectUuidsWithMeasuresMigratedFalse" resultType="java.lang.String" parameterType="int" databaseId="oracle">
+ SELECT * FROM (
+ SELECT p.uuid
+ FROM portfolios p
+ WHERE p.measures_migrated = ${_false}
+ AND p.parent_uuid is null
+ ORDER BY p.uuid ASC
+ ) WHERE rownum &lt;= #{limit}
+ </select>
+
+ <select id="selectUuidsWithMeasuresMigratedFalse" resultType="java.lang.String" parameterType="int" databaseId="mssql">
+ SELECT top(#{limit, jdbcType=INTEGER}) p.uuid
+ FROM portfolios p
+ WHERE p.measures_migrated = ${_false}
+ AND p.parent_uuid is null
+ ORDER BY p.uuid ASC
+ </select>
+
+ <select id="countByMeasuresMigratedFalse" resultType="int">
+ select
+ count(p.uuid)
+ from portfolios p
+ where
+ p.measures_migrated = ${_false}
+ and p.parent_uuid is null
+ </select>
+
+ <select id="isMeasuresMigrated" resultType="boolean">
+ select
+ p.measures_migrated
+ from portfolios p
+ where
+ p.uuid = #{uuid, jdbcType=VARCHAR}
+ </select>
</mapper>
diff --git a/server/sonar-db-dao/src/test/java/org/sonar/db/component/BranchDaoTest.java b/server/sonar-db-dao/src/test/java/org/sonar/db/component/BranchDaoTest.java
index 8f42fc67056..f11f90f271c 100644
--- a/server/sonar-db-dao/src/test/java/org/sonar/db/component/BranchDaoTest.java
+++ b/server/sonar-db-dao/src/test/java/org/sonar/db/component/BranchDaoTest.java
@@ -39,13 +39,11 @@ import org.sonar.api.impl.utils.TestSystem2;
import org.sonar.api.utils.System2;
import org.sonar.db.DbSession;
import org.sonar.db.DbTester;
-import org.sonar.db.dialect.Oracle;
import org.sonar.db.metric.MetricDto;
import org.sonar.db.project.ProjectDto;
import org.sonar.db.protobuf.DbProjectBranches;
import org.sonar.server.platform.db.migration.adhoc.AddMeasuresMigratedColumnToProjectBranchesTable;
-import static java.lang.String.format;
import static java.util.Arrays.asList;
import static java.util.Collections.emptyList;
import static java.util.Collections.singletonList;
@@ -656,6 +654,70 @@ public class BranchDaoTest {
}
@Test
+ public void selectUuidsWithMeasuresMigratedFalse() throws SQLException {
+ createMeasuresMigratedColumn();
+
+ // master branch with flag set to false
+ ComponentDto notMigratedProject = db.components().insertPrivateProject();
+ // branches & PRs
+ ComponentDto migratedBranch = db.components().insertProjectBranch(notMigratedProject, b -> b.setBranchType(BRANCH));
+ ComponentDto notMigratedBranch = db.components().insertProjectBranch(notMigratedProject, b -> b.setBranchType(BranchType.BRANCH));
+ ComponentDto migratedPR = db.components().insertProjectBranch(notMigratedProject, b -> b.setBranchType(BranchType.PULL_REQUEST));
+ ComponentDto notMigratedPR = db.components().insertProjectBranch(notMigratedProject, b -> b.setBranchType(PULL_REQUEST));
+
+ db.getDbClient().branchDao().updateMeasuresMigrated(dbSession, migratedBranch.branchUuid(), true);
+ db.getDbClient().branchDao().updateMeasuresMigrated(dbSession, notMigratedBranch.branchUuid(), false);
+ db.getDbClient().branchDao().updateMeasuresMigrated(dbSession, migratedPR.branchUuid(), true);
+
+ assertThat(underTest.selectUuidsWithMeasuresMigratedFalse(dbSession, 10))
+ .hasSize(3)
+ .containsOnly(notMigratedProject.branchUuid(), notMigratedBranch.branchUuid(), notMigratedPR.branchUuid());
+
+ assertThat(underTest.selectUuidsWithMeasuresMigratedFalse(dbSession, 1))
+ .hasSize(1)
+ .containsOnly(notMigratedProject.branchUuid());
+ }
+
+ @Test
+ public void countByMeasuresMigratedFalse() throws SQLException {
+ createMeasuresMigratedColumn();
+
+ // master branch with flag set to false
+ ComponentDto project = db.components().insertPrivateProject();
+ // branches & PRs
+ ComponentDto branch1 = db.components().insertProjectBranch(project, b -> b.setBranchType(BRANCH));
+ ComponentDto branch2 = db.components().insertProjectBranch(project, b -> b.setBranchType(BranchType.BRANCH));
+ ComponentDto branch3 = db.components().insertProjectBranch(project, b -> b.setBranchType(BranchType.PULL_REQUEST));
+ db.components().insertProjectBranch(project, b -> b.setBranchType(BranchType.PULL_REQUEST));
+
+ db.getDbClient().branchDao().updateMeasuresMigrated(dbSession, branch1.branchUuid(), true);
+ db.getDbClient().branchDao().updateMeasuresMigrated(dbSession, branch2.branchUuid(), false);
+ db.getDbClient().branchDao().updateMeasuresMigrated(dbSession, branch3.branchUuid(), true);
+
+ assertThat(underTest.countByMeasuresMigratedFalse(dbSession)).isEqualTo(3);
+ }
+
+ @Test
+ public void updateMeasuresMigrated() throws SQLException {
+ createMeasuresMigratedColumn();
+
+ ComponentDto project = db.components().insertPrivateProject();
+ String uuid1 = db.components().insertProjectBranch(project, b -> b.setBranchType(BranchType.BRANCH)).uuid();
+ String uuid2 = db.components().insertProjectBranch(project, b -> b.setBranchType(BranchType.BRANCH)).uuid();
+
+ underTest.updateMeasuresMigrated(dbSession, uuid1, true);
+ underTest.updateMeasuresMigrated(dbSession, uuid2, false);
+
+ assertThat(underTest.isMeasuresMigrated(dbSession, uuid1)).isTrue();
+ assertThat(underTest.isMeasuresMigrated(dbSession, uuid2)).isFalse();
+ }
+
+ private void createMeasuresMigratedColumn() throws SQLException {
+ AddMeasuresMigratedColumnToProjectBranchesTable migration = new AddMeasuresMigratedColumnToProjectBranchesTable(db.getDbClient().getDatabase());
+ migration.execute();
+ }
+
+ @Test
public void countAll() {
assertThat(underTest.countAll(dbSession)).isZero();
@@ -780,31 +842,4 @@ public class BranchDaoTest {
assertThat(underTest.doAnyOfComponentsNeedIssueSync(dbSession, componentKeys)).isTrue();
}
-
- @Test
- public void updateMeasuresMigrated() throws SQLException {
- new AddMeasuresMigratedColumnToProjectBranchesTable(db.getDbClient().getDatabase()).execute();
-
- ComponentDto project = db.components().insertPrivateProject();
- String uuid1 = db.components().insertProjectBranch(project, b -> b.setBranchType(BranchType.BRANCH)).uuid();
- String uuid2 = db.components().insertProjectBranch(project, b -> b.setBranchType(BranchType.BRANCH)).uuid();
-
- underTest.updateMeasuresMigrated(dbSession, uuid1, true);
- underTest.updateMeasuresMigrated(dbSession, uuid2, false);
-
- assertThat(getMeasuresMigrated(uuid1)).isTrue();
- assertThat(getMeasuresMigrated(uuid2)).isFalse();
- }
-
- private boolean getMeasuresMigrated(String uuid1) {
- List<Map<String, Object>> select = db.select(dbSession,
- format("select measures_migrated as \"MIGRATED\" from project_branches where uuid = '%s'", uuid1));
-
- assertThat(select).hasSize(1);
- Object value = select.get(0).get("MIGRATED");
- if (db.getDbClient().getDatabase().getDialect().getId().equals(Oracle.ID)) {
- return (long) value == 1;
- }
- return (boolean) value;
- }
}
diff --git a/server/sonar-db-dao/src/test/java/org/sonar/db/portfolio/PortfolioDaoTest.java b/server/sonar-db-dao/src/test/java/org/sonar/db/portfolio/PortfolioDaoTest.java
index ae12b1b059d..9ea18c73c0e 100644
--- a/server/sonar-db-dao/src/test/java/org/sonar/db/portfolio/PortfolioDaoTest.java
+++ b/server/sonar-db-dao/src/test/java/org/sonar/db/portfolio/PortfolioDaoTest.java
@@ -20,8 +20,6 @@
package org.sonar.db.portfolio;
import java.sql.SQLException;
-import java.util.List;
-import java.util.Map;
import java.util.Set;
import org.junit.Rule;
import org.junit.Test;
@@ -32,12 +30,10 @@ import org.sonar.db.DbSession;
import org.sonar.db.DbTester;
import org.sonar.db.audit.AuditPersister;
import org.sonar.db.component.BranchDto;
-import org.sonar.db.dialect.Oracle;
import org.sonar.db.project.ApplicationProjectDto;
import org.sonar.db.project.ProjectDto;
import org.sonar.server.platform.db.migration.adhoc.AddMeasuresMigratedColumnToPortfoliosTable;
-import static java.lang.String.format;
import static java.util.Collections.emptySet;
import static java.util.Collections.singleton;
import static org.assertj.core.api.Assertions.assertThat;
@@ -715,20 +711,76 @@ public class PortfolioDaoTest {
portfolioDao.updateMeasuresMigrated(session, portfolio1.getUuid(), true);
portfolioDao.updateMeasuresMigrated(session, portfolio2.getUuid(), false);
- assertThat(getMeasuresMigrated(portfolio1.getUuid())).isTrue();
- assertThat(getMeasuresMigrated(portfolio2.getUuid())).isFalse();
+ assertThat(portfolioDao.isMeasuresMigrated(session, portfolio1.getUuid())).isTrue();
+ assertThat(portfolioDao.isMeasuresMigrated(session, portfolio2.getUuid())).isFalse();
}
- private boolean getMeasuresMigrated(String uuid1) {
- List<Map<String, Object>> select = db.select(session,
- format("select measures_migrated as \"MIGRATED\" from portfolios where uuid = '%s'", uuid1));
+ @Test
+ public void selectUuidsWithMeasuresMigratedFalse() throws SQLException {
+ createMeasuresMigratedColumn();
+
+ PortfolioDto migratedRoot = db.components().insertPrivatePortfolioDto();
+ PortfolioDto migratedChild1 = addPortfolio(migratedRoot);
+ PortfolioDto notMigratedRoot = db.components().insertPrivatePortfolioDto();
+ PortfolioDto notMigratedChild = addPortfolio(notMigratedRoot);
+ PortfolioDto notMigratedRoot2 = db.components().insertPrivatePortfolioDto();
+
+ // a parent portfolio and its children are expected to have the same migration status
+ db.getDbClient().portfolioDao().updateMeasuresMigrated(session, migratedRoot.getUuid(), true);
+ db.getDbClient().portfolioDao().updateMeasuresMigrated(session, migratedChild1.getUuid(), true);
+ db.getDbClient().portfolioDao().updateMeasuresMigrated(session, notMigratedRoot.getUuid(), false);
+ db.getDbClient().portfolioDao().updateMeasuresMigrated(session, notMigratedChild.getUuid(), false);
+
+ assertThat(portfolioDao.selectUuidsWithMeasuresMigratedFalse(session, 10))
+ .hasSize(2)
+ .containsOnly(notMigratedRoot.getUuid(), notMigratedRoot2.getUuid());
+
+ assertThat(portfolioDao.selectUuidsWithMeasuresMigratedFalse(session, 1))
+ .hasSize(1)
+ .containsOnly(notMigratedRoot.getUuid());
+ }
+
+ @Test
+ public void countByMeasuresMigratedFalse() throws SQLException {
+ createMeasuresMigratedColumn();
+
+ PortfolioDto root = db.components().insertPrivatePortfolioDto();
+ PortfolioDto child1 = addPortfolio(root);
+ PortfolioDto root2 = db.components().insertPrivatePortfolioDto();
+ PortfolioDto child2 = addPortfolio(root2);
+ PortfolioDto root3 = db.components().insertPrivatePortfolioDto();
+ db.components().insertPrivatePortfolioDto();
+
+ // a parent portfolio and its children are expected to have the same migration status
+ db.getDbClient().portfolioDao().updateMeasuresMigrated(session, root.getUuid(), true);
+ db.getDbClient().portfolioDao().updateMeasuresMigrated(session, child1.getUuid(), true);
+ db.getDbClient().portfolioDao().updateMeasuresMigrated(session, root2.getUuid(), false);
+ db.getDbClient().portfolioDao().updateMeasuresMigrated(session, child2.getUuid(), false);
+ db.getDbClient().portfolioDao().updateMeasuresMigrated(session, root3.getUuid(), false);
+
+ assertThat(portfolioDao.countByMeasuresMigratedFalse(session)).isEqualTo(3);
+ }
+
+ @Test
+ public void updateMeasuresMigrated() throws SQLException {
+ createMeasuresMigratedColumn();
+
+ PortfolioDto portfolio1 = db.components().insertPrivatePortfolioDto("name1");
+ PortfolioDto portfolio2 = db.components().insertPrivatePortfolioDto("name2");
+ PortfolioDto portfolio3 = db.components().insertPrivatePortfolioDto("name3",
+ p -> p.setRootUuid(portfolio1.getUuid()).setParentUuid(portfolio1.getUuid()));
+
+ portfolioDao.updateMeasuresMigrated(session, portfolio1.getUuid(), true);
+ portfolioDao.updateMeasuresMigrated(session, portfolio2.getUuid(), false);
+
+ assertThat(portfolioDao.isMeasuresMigrated(session, portfolio1.getUuid())).isTrue();
+ assertThat(portfolioDao.isMeasuresMigrated(session, portfolio2.getUuid())).isFalse();
+ assertThat(portfolioDao.isMeasuresMigrated(session, portfolio3.getUuid())).isTrue();
+ }
- assertThat(select).hasSize(1);
- Object value = select.get(0).get("MIGRATED");
- if (db.getDbClient().getDatabase().getDialect().getId().equals(Oracle.ID)) {
- return (long) value == 1;
- }
- return (boolean) value;
+ private void createMeasuresMigratedColumn() throws SQLException {
+ AddMeasuresMigratedColumnToPortfoliosTable migration = new AddMeasuresMigratedColumnToPortfoliosTable(db.getDbClient().getDatabase());
+ migration.execute();
}
private PortfolioDto addPortfolio(PortfolioDto parent) {