Skip to content

Commit a5c1aad

Browse files
authored
Merge pull request #1429 from lowcoder-org/fix/rename_collection
Rename collection `applicationRecord` to `applicationVersion`
2 parents 735b83e + 4d8148e commit a5c1aad

File tree

11 files changed

+62
-42
lines changed

11 files changed

+62
-42
lines changed

server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/model/Application.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ public Mono<ApplicationQuery> getQueryByViewModeAndQueryId(boolean isViewMode, S
141141
@JsonIgnore
142142
public Mono<Map<String, Object>> getLiveApplicationDsl(ApplicationRecordService applicationRecordService) {
143143
return applicationRecordService.getLatestRecordByApplicationId(this.getId())
144-
.map(ApplicationRecord::getApplicationDSL)
144+
.map(ApplicationVersion::getApplicationDSL)
145145
.switchIfEmpty(Mono.just(editingApplicationDSL));
146146
}
147147

@@ -237,7 +237,7 @@ public Mono<Object> getLiveContainerSize(ApplicationRecordService applicationRec
237237
}
238238

239239
public Mono<Map<String, Object>> getPublishedApplicationDSL(ApplicationRecordService applicationRecordService) {
240-
return applicationRecordService.getLatestRecordByApplicationId(this.getId()).map(ApplicationRecord::getApplicationDSL);
240+
return applicationRecordService.getLatestRecordByApplicationId(this.getId()).map(ApplicationVersion::getApplicationDSL);
241241
}
242242

243243
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
@SuperBuilder
1515
@Jacksonized
1616
@NoArgsConstructor
17-
public class ApplicationRecord extends HasIdAndAuditing {
17+
public class ApplicationVersion extends HasIdAndAuditing {
1818

1919
private String applicationId;
2020
private String tag;
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package org.lowcoder.domain.application.repository;
22

33

4-
import org.lowcoder.domain.application.model.ApplicationRecord;
4+
import org.lowcoder.domain.application.model.ApplicationVersion;
55
import org.springframework.data.mongodb.repository.ReactiveMongoRepository;
66
import org.springframework.stereotype.Repository;
77
import reactor.core.publisher.Flux;
@@ -10,14 +10,14 @@
1010
import java.util.List;
1111

1212
@Repository
13-
public interface ApplicationRecordRepository extends ReactiveMongoRepository<ApplicationRecord, String> {
13+
public interface ApplicationRecordRepository extends ReactiveMongoRepository<ApplicationVersion, String> {
1414

1515
Mono<Long> deleteByApplicationId(String applicationId);
1616

17-
Flux<ApplicationRecord> findByApplicationId(String applicationId);
17+
Flux<ApplicationVersion> findByApplicationId(String applicationId);
1818

19-
Flux<ApplicationRecord> findByApplicationIdIn(List<String> ids);
19+
Flux<ApplicationVersion> findByApplicationIdIn(List<String> ids);
2020

21-
Mono<ApplicationRecord> findTop1ByApplicationIdOrderByCreatedAtDesc(String applicationId);
21+
Mono<ApplicationVersion> findTop1ByApplicationIdOrderByCreatedAtDesc(String applicationId);
2222

2323
}

server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/service/ApplicationRecordService.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
11
package org.lowcoder.domain.application.service;
22

3-
import org.lowcoder.domain.application.model.ApplicationRecord;
3+
import org.lowcoder.domain.application.model.ApplicationVersion;
44
import reactor.core.publisher.Mono;
55

66
import java.util.List;
77
import java.util.Map;
88

99
public interface ApplicationRecordService {
10-
Mono<ApplicationRecord> insert(ApplicationRecord applicationRecord);
10+
Mono<ApplicationVersion> insert(ApplicationVersion applicationRecord);
1111

12-
Mono<List<ApplicationRecord>> getByApplicationId(String applicationId);
12+
Mono<List<ApplicationVersion>> getByApplicationId(String applicationId);
1313

14-
Mono<Map<String, List<ApplicationRecord>>> getByApplicationIdIn(List<String> applicationIdList);
14+
Mono<Map<String, List<ApplicationVersion>>> getByApplicationIdIn(List<String> applicationIdList);
1515

16-
Mono<ApplicationRecord> getById(String id);
16+
Mono<ApplicationVersion> getById(String id);
1717

18-
Mono<ApplicationRecord> getLatestRecordByApplicationId(String applicationId);
18+
Mono<ApplicationVersion> getLatestRecordByApplicationId(String applicationId);
1919

2020
Mono<Long> deleteAllApplicationTagByApplicationId(String applicationId);
2121

server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/service/ApplicationRecordServiceImpl.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package org.lowcoder.domain.application.service;
22

33
import lombok.RequiredArgsConstructor;
4-
import org.lowcoder.domain.application.model.ApplicationRecord;
4+
import org.lowcoder.domain.application.model.ApplicationVersion;
55
import org.lowcoder.domain.application.repository.ApplicationRecordRepository;
66
import org.springframework.stereotype.Service;
77
import reactor.core.publisher.Mono;
@@ -21,31 +21,31 @@ public class ApplicationRecordServiceImpl implements ApplicationRecordService {
2121
private final ApplicationRecordRepository applicationRecordRepository;
2222

2323
@Override
24-
public Mono<ApplicationRecord> insert(ApplicationRecord applicationRecord) {
24+
public Mono<ApplicationVersion> insert(ApplicationVersion applicationRecord) {
2525
return applicationRecordRepository.save(applicationRecord);
2626
}
2727

2828
/**
2929
* get all published versions
3030
*/
3131
@Override
32-
public Mono<List<ApplicationRecord>> getByApplicationId(String applicationId) {
32+
public Mono<List<ApplicationVersion>> getByApplicationId(String applicationId) {
3333
return applicationRecordRepository.findByApplicationId(applicationId)
34-
.sort(Comparator.comparing(ApplicationRecord::getCreatedAt).reversed())
34+
.sort(Comparator.comparing(ApplicationVersion::getCreatedAt).reversed())
3535
.collectList();
3636
}
3737

3838
@Override
39-
public Mono<Map<String, List<ApplicationRecord>>> getByApplicationIdIn(List<String> applicationIdList) {
39+
public Mono<Map<String, List<ApplicationVersion>>> getByApplicationIdIn(List<String> applicationIdList) {
4040
return applicationRecordRepository.findByApplicationIdIn(applicationIdList)
41-
.sort(Comparator.comparing(ApplicationRecord::getCreatedAt).reversed())
41+
.sort(Comparator.comparing(ApplicationVersion::getCreatedAt).reversed())
4242
.collectList()
4343
.map(applicationRecords -> applicationRecords.stream()
44-
.collect(Collectors.groupingBy(ApplicationRecord::getApplicationId)));
44+
.collect(Collectors.groupingBy(ApplicationVersion::getApplicationId)));
4545
}
4646

4747
@Override
48-
public Mono<ApplicationRecord> getById(String id) {
48+
public Mono<ApplicationVersion> getById(String id) {
4949
return applicationRecordRepository.findById(id)
5050
.switchIfEmpty(deferredError(APPLICATION_NOT_FOUND, "APPLICATION_NOT_FOUND"));
5151
}
@@ -54,7 +54,7 @@ public Mono<ApplicationRecord> getById(String id) {
5454
* get the latest published version
5555
*/
5656
@Override
57-
public Mono<ApplicationRecord> getLatestRecordByApplicationId(String applicationId) {
57+
public Mono<ApplicationVersion> getLatestRecordByApplicationId(String applicationId) {
5858
return applicationRecordRepository.findTop1ByApplicationIdOrderByCreatedAtDesc(applicationId);
5959
}
6060

server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/service/ApplicationServiceImpl.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
import lombok.RequiredArgsConstructor;
1111
import org.apache.commons.lang3.StringUtils;
1212
import org.lowcoder.domain.application.model.Application;
13-
import org.lowcoder.domain.application.model.ApplicationRecord;
13+
import org.lowcoder.domain.application.model.ApplicationVersion;
1414
import org.lowcoder.domain.application.model.ApplicationRequestType;
1515
import org.lowcoder.domain.application.model.ApplicationStatus;
1616
import org.lowcoder.domain.application.repository.ApplicationRepository;
@@ -347,7 +347,7 @@ public Mono<Boolean> updateLastEditedAt(String applicationId, Instant time, Stri
347347
@Override
348348
public Mono<Map<String, Object>> getLiveDSLByApplicationId(String applicationId) {
349349
return applicationRecordService.getLatestRecordByApplicationId(applicationId)
350-
.map(ApplicationRecord::getApplicationDSL)
350+
.map(ApplicationVersion::getApplicationDSL)
351351
.switchIfEmpty(findById(applicationId)
352352
.map(Application::getEditingApplicationDSL));
353353
}

server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationApiServiceImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -368,7 +368,7 @@ public Mono<ApplicationView> publish(String applicationId, ApplicationPublishReq
368368
.flatMap(userId -> resourcePermissionService.checkAndReturnMaxPermission(userId,
369369
applicationId, PUBLISH_APPLICATIONS))
370370
.delayUntil(__ -> applicationService.findById(applicationId)
371-
.map(application -> ApplicationRecord.builder()
371+
.map(application -> ApplicationVersion.builder()
372372
.tag(applicationPublishRequest.tag())
373373
.commitMessage(applicationPublishRequest.commitMessage())
374374
.applicationId(application.getId())

server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationRecordApiServiceImpl.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,12 @@
22

33
import lombok.RequiredArgsConstructor;
44
import org.lowcoder.api.home.SessionUserService;
5-
import org.lowcoder.api.application.ApplicationApiServiceImpl;
65
import org.lowcoder.api.application.view.ApplicationRecordMetaView;
76
import org.lowcoder.api.usermanagement.OrgDevChecker;
7+
import org.lowcoder.domain.application.model.ApplicationVersion;
88
import org.lowcoder.domain.organization.model.OrgMember;
99
import org.lowcoder.domain.application.model.Application;
1010
import org.lowcoder.domain.application.model.ApplicationCombineId;
11-
import org.lowcoder.domain.application.model.ApplicationRecord;
1211
import org.lowcoder.domain.application.service.ApplicationRecordService;
1312
import org.lowcoder.domain.application.service.ApplicationService;
1413
import org.lowcoder.domain.user.service.UserService;
@@ -41,7 +40,7 @@ public Mono<Map<String, Object>> getRecordDSLFromApplicationCombineId(Applicatio
4140
return applicationService.getLiveDSLByApplicationId(applicationCombineId.applicationId());
4241
}
4342
return applicationRecordService.getById(applicationCombineId.applicationRecordId())
44-
.map(ApplicationRecord::getApplicationDSL);
43+
.map(ApplicationVersion::getApplicationDSL);
4544
}));
4645
}
4746

@@ -55,7 +54,7 @@ public Mono<Void> delete(String id) {
5554
public Mono<List<ApplicationRecordMetaView>> getByApplicationId(String applicationId) {
5655
return applicationRecordService.getByApplicationId(applicationId)
5756
.flatMap(applicationRecords -> multiBuild(applicationRecords,
58-
ApplicationRecord::getCreatedBy,
57+
ApplicationVersion::getCreatedBy,
5958
userService::getByIds,
6059
ApplicationRecordMetaView::from
6160
));

server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/view/ApplicationRecordMetaView.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package org.lowcoder.api.application.view;
22

3-
import org.lowcoder.domain.application.model.ApplicationRecord;
3+
import org.lowcoder.domain.application.model.ApplicationVersion;
44
import org.lowcoder.domain.user.model.User;
55

66
public record ApplicationRecordMetaView(String id,
@@ -10,7 +10,7 @@ public record ApplicationRecordMetaView(String id,
1010
long createTime,
1111
String creatorName) {
1212

13-
public static ApplicationRecordMetaView from(ApplicationRecord applicationRecord) {
13+
public static ApplicationRecordMetaView from(ApplicationVersion applicationRecord) {
1414
return new ApplicationRecordMetaView(applicationRecord.getId(),
1515
applicationRecord.getApplicationId(),
1616
applicationRecord.getTag(),
@@ -19,7 +19,7 @@ public static ApplicationRecordMetaView from(ApplicationRecord applicationRecord
1919
null);
2020
}
2121

22-
public static ApplicationRecordMetaView from(ApplicationRecord applicationRecord, User applicationRecordCreator) {
22+
public static ApplicationRecordMetaView from(ApplicationVersion applicationRecord, User applicationRecordCreator) {
2323
return new ApplicationRecordMetaView(applicationRecord.getId(),
2424
applicationRecord.getApplicationId(),
2525
applicationRecord.getTag(),

server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/home/UserHomeApiServiceImpl.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,14 @@
44
import lombok.RequiredArgsConstructor;
55
import org.apache.commons.lang3.StringUtils;
66
import org.lowcoder.api.application.view.ApplicationInfoView;
7-
import org.lowcoder.api.application.view.ApplicationInfoView.ApplicationInfoViewBuilder;
87
import org.lowcoder.api.application.view.MarketplaceApplicationInfoView;
98
import org.lowcoder.api.bundle.view.BundleInfoView;
109
import org.lowcoder.api.bundle.view.MarketplaceBundleInfoView;
1110
import org.lowcoder.api.usermanagement.OrgDevChecker;
1211
import org.lowcoder.api.usermanagement.view.OrgAndVisitorRoleView;
1312
import org.lowcoder.api.usermanagement.view.UserProfileView;
1413
import org.lowcoder.domain.application.model.Application;
15-
import org.lowcoder.domain.application.model.ApplicationRecord;
14+
import org.lowcoder.domain.application.model.ApplicationVersion;
1615
import org.lowcoder.domain.application.model.ApplicationStatus;
1716
import org.lowcoder.domain.application.model.ApplicationType;
1817
import org.lowcoder.domain.application.service.ApplicationRecordService;
@@ -38,7 +37,6 @@
3837
import org.lowcoder.infra.util.NetworkUtils;
3938
import org.lowcoder.infra.util.TupleUtils;
4039
import org.lowcoder.sdk.config.CommonConfig;
41-
import org.lowcoder.sdk.models.VersionedModel;
4240
import org.springframework.stereotype.Component;
4341
import org.springframework.web.server.ServerWebExchange;
4442
import reactor.core.publisher.Flux;
@@ -574,7 +572,7 @@ private Mono<ApplicationInfoView> buildView(Application application, ResourceRol
574572
.zipWith(application.getIcon(applicationRecordService), TupleUtils::merge)
575573
.zipWith(applicationRecordService.getLatestRecordByApplicationId(application.getId()).map(Optional::of).switchIfEmpty(Mono.just(Optional.empty())), TupleUtils::merge)
576574
.flatMap(tuple -> {
577-
Optional<ApplicationRecord> lastAppRecord = tuple.getT5();
575+
Optional<ApplicationVersion> lastAppRecord = tuple.getT5();
578576
ApplicationInfoView.ApplicationInfoViewBuilder applicationInfoViewBuilder = ApplicationInfoView.builder()
579577
.applicationId(application.getId())
580578
.applicationGid(application.getGid())
@@ -585,8 +583,8 @@ private Mono<ApplicationInfoView> buildView(Application application, ResourceRol
585583
.category(tuple.getT3())
586584
.icon(tuple.getT4())
587585
.published(lastAppRecord.isPresent())
588-
.publishedVersion(lastAppRecord.map(ApplicationRecord::version).orElse(null))
589-
.lastPublishedTime(lastAppRecord.map(ApplicationRecord::getCreatedAt).orElse(null))
586+
.publishedVersion(lastAppRecord.map(ApplicationVersion::version).orElse(null))
587+
.lastPublishedTime(lastAppRecord.map(ApplicationVersion::getCreatedAt).orElse(null))
590588
.createBy(Optional.ofNullable(userMap.get(application.getCreatedBy()))
591589
.map(User::getName)
592590
.orElse(""))

server/api-service/lowcoder-server/src/main/java/org/lowcoder/runner/migrations/DatabaseChangelog.java

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,18 @@
44
import com.github.cloudyrock.mongock.ChangeSet;
55
import com.github.cloudyrock.mongock.driver.mongodb.springdata.v4.decorator.impl.MongockTemplate;
66
import com.github.f4b6a3.uuid.UuidCreator;
7+
import com.mongodb.MongoNamespace;
78
import com.mongodb.client.MongoCollection;
89
import com.mongodb.client.MongoCursor;
10+
import com.mongodb.client.MongoDatabase;
911
import com.mongodb.client.result.DeleteResult;
1012
import lombok.extern.slf4j.Slf4j;
1113
import org.bson.Document;
1214
import org.bson.types.ObjectId;
1315
import org.lowcoder.domain.application.model.Application;
1416
import org.lowcoder.domain.application.model.ApplicationHistorySnapshot;
1517
import org.lowcoder.domain.application.model.ApplicationHistorySnapshotTS;
16-
import org.lowcoder.domain.application.model.ApplicationRecord;
18+
import org.lowcoder.domain.application.model.ApplicationVersion;
1719
import org.lowcoder.domain.bundle.model.Bundle;
1820
import org.lowcoder.domain.datasource.model.Datasource;
1921
import org.lowcoder.domain.datasource.model.DatasourceStructureDO;
@@ -438,7 +440,7 @@ public void publishedToRecord(MongockTemplate mongoTemplate, CommonConfig common
438440
ObjectId id = document.getObjectId("_id");
439441
String createdBy = document.getString("createdBy");
440442
Map<String, Object> dslMap = documentToMap(dsl);
441-
ApplicationRecord record = ApplicationRecord.builder()
443+
ApplicationVersion record = ApplicationVersion.builder()
442444
.applicationId(id.toHexString())
443445
.applicationDSL(dslMap)
444446
.commitMessage("")
@@ -453,7 +455,28 @@ public void publishedToRecord(MongockTemplate mongoTemplate, CommonConfig common
453455
}
454456
@ChangeSet(order = "029", id = "add-tag-index-to-record", author = "Thomas")
455457
public void addTagIndexToRecord(MongockTemplate mongoTemplate, CommonConfig commonConfig) {
456-
ensureIndexes(mongoTemplate, ApplicationRecord.class, makeIndex("applicationId", "tag").unique());
458+
ensureIndexes(mongoTemplate, ApplicationVersion.class, makeIndex("applicationId", "tag").unique());
459+
}
460+
461+
@ChangeSet(order = "030", id = "rename-application-record-collection", author = "Thomas")
462+
public void renameApplicationRecordCollection(MongockTemplate mongoTemplate, MongoDatabase mongoDatabase) {
463+
String oldCollectionName = "applicationRecord";
464+
String newCollectionName = "applicationVersion";
465+
466+
// Check if the old collection exists
467+
boolean collectionExists = mongoDatabase.listCollectionNames()
468+
.into(new java.util.ArrayList<>())
469+
.contains(oldCollectionName);
470+
471+
if (collectionExists) {
472+
// Rename the collection
473+
mongoDatabase.getCollection(oldCollectionName)
474+
.renameCollection(new MongoNamespace(mongoDatabase.getName(), newCollectionName));
475+
System.out.println("Collection renamed from " + oldCollectionName + " to " + newCollectionName);
476+
} else {
477+
System.out.println("Collection " + oldCollectionName + " does not exist, skipping rename.");
478+
}
479+
457480
}
458481

459482
private void addGidField(MongockTemplate mongoTemplate, String collectionName) {

0 commit comments

Comments
 (0)