diff --git a/src/main/java/org/radarbase/appserver/entity/User.java b/src/main/java/org/radarbase/appserver/entity/User.java index f59f95a5..fc9c32f3 100644 --- a/src/main/java/org/radarbase/appserver/entity/User.java +++ b/src/main/java/org/radarbase/appserver/entity/User.java @@ -61,7 +61,8 @@ @Table( name = "users", uniqueConstraints = { - @UniqueConstraint(columnNames = {"subject_id", "fcm_token", "project_id"}) + @UniqueConstraint(columnNames = {"subject_id", "project_id"}), + @UniqueConstraint(columnNames = {"fcm_token"}) }) @Entity @Getter diff --git a/src/main/java/org/radarbase/appserver/service/questionnaire/protocol/GithubProtocolFetcherStrategy.java b/src/main/java/org/radarbase/appserver/service/questionnaire/protocol/GithubProtocolFetcherStrategy.java index 22777e9f..428d5d51 100644 --- a/src/main/java/org/radarbase/appserver/service/questionnaire/protocol/GithubProtocolFetcherStrategy.java +++ b/src/main/java/org/radarbase/appserver/service/questionnaire/protocol/GithubProtocolFetcherStrategy.java @@ -125,6 +125,7 @@ public synchronized Map fetchProtocols() { Map subjectProtocolMap = users.parallelStream() .map(u -> this.fetchProtocolForSingleUser(u, u.getProject().getProjectId(), protocolPaths)) .filter(c -> c.getProtocol() != null) + .distinct() .collect(Collectors.toMap(ProtocolCacheEntry::getId, ProtocolCacheEntry::getProtocol)); log.info("Refreshed Protocols from Github"); diff --git a/src/main/resources/db/changelog/changes/00000000000002_update_schema-20240522185927_changelog.yml b/src/main/resources/db/changelog/changes/00000000000002_update_schema-20240522185927_changelog.yml new file mode 100644 index 00000000..499e2984 --- /dev/null +++ b/src/main/resources/db/changelog/changes/00000000000002_update_schema-20240522185927_changelog.yml @@ -0,0 +1,16 @@ +databaseChangeLog: + - changeSet: + id: 1543511610622-8 + author: pauline + changes: + - dropUniqueConstraint: + tableName: users + constraintName: UKmm6u3xspqfqoolkjhsvdrqefq + - changeSet: + id: 1716400827373-1 + author: pauline + changes: + - addUniqueConstraint: + columnNames: subject_id, project_id + constraintName: UKg6m4nzwvxqpwtrbeynasdcplo + tableName: users