Catch workspace issues in backfill upgrade commands
This commit is contained in:
@ -27,10 +27,16 @@ export class RecordPositionBackfillCommand extends ActiveWorkspacesCommandRunner
|
|||||||
workspaceIds: string[],
|
workspaceIds: string[],
|
||||||
): Promise<void> {
|
): Promise<void> {
|
||||||
for (const workspaceId of workspaceIds) {
|
for (const workspaceId of workspaceIds) {
|
||||||
await this.recordPositionBackfillService.backfill(
|
try {
|
||||||
workspaceId,
|
await this.recordPositionBackfillService.backfill(
|
||||||
options.dryRun ?? false,
|
workspaceId,
|
||||||
);
|
options.dryRun ?? false,
|
||||||
|
);
|
||||||
|
} catch (error) {
|
||||||
|
this.logger.error(
|
||||||
|
`Error backfilling record position for workspace ${workspaceId}: ${error}`,
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -34,47 +34,53 @@ export class ViewGroupNoValueBackfillCommand extends ActiveWorkspacesCommandRunn
|
|||||||
workspaceIds: string[],
|
workspaceIds: string[],
|
||||||
): Promise<void> {
|
): Promise<void> {
|
||||||
for (const workspaceId of workspaceIds) {
|
for (const workspaceId of workspaceIds) {
|
||||||
const viewRepository =
|
try {
|
||||||
await this.twentyORMGlobalManager.getRepositoryForWorkspace<ViewWorkspaceEntity>(
|
const viewRepository =
|
||||||
workspaceId,
|
await this.twentyORMGlobalManager.getRepositoryForWorkspace<ViewWorkspaceEntity>(
|
||||||
'view',
|
workspaceId,
|
||||||
);
|
'view',
|
||||||
|
);
|
||||||
|
|
||||||
const viewGroupRepository =
|
const viewGroupRepository =
|
||||||
await this.twentyORMGlobalManager.getRepositoryForWorkspace<ViewGroupWorkspaceEntity>(
|
await this.twentyORMGlobalManager.getRepositoryForWorkspace<ViewGroupWorkspaceEntity>(
|
||||||
workspaceId,
|
workspaceId,
|
||||||
'viewGroup',
|
'viewGroup',
|
||||||
);
|
);
|
||||||
|
|
||||||
const views = await viewRepository.find({
|
const views = await viewRepository.find({
|
||||||
relations: ['viewGroups'],
|
relations: ['viewGroups'],
|
||||||
});
|
|
||||||
|
|
||||||
for (const view of views) {
|
|
||||||
if (view.viewGroups.length === 0) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
// We're assuming for now that all viewGroups belonging to the same view have the same fieldMetadataId
|
|
||||||
const viewGroup = view.viewGroups?.[0];
|
|
||||||
const fieldMetadataId = viewGroup?.fieldMetadataId;
|
|
||||||
|
|
||||||
if (!fieldMetadataId || !viewGroup) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
const fieldMetadata = await this.fieldMetadataRepository.findOne({
|
|
||||||
where: { id: viewGroup.fieldMetadataId },
|
|
||||||
});
|
});
|
||||||
|
|
||||||
if (!fieldMetadata) {
|
for (const view of views) {
|
||||||
continue;
|
if (view.viewGroups.length === 0) {
|
||||||
}
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
await this.fieldMetadataRelatedRecordsService.syncNoValueViewGroup(
|
// We're assuming for now that all viewGroups belonging to the same view have the same fieldMetadataId
|
||||||
fieldMetadata,
|
const viewGroup = view.viewGroups?.[0];
|
||||||
view,
|
const fieldMetadataId = viewGroup?.fieldMetadataId;
|
||||||
viewGroupRepository,
|
|
||||||
|
if (!fieldMetadataId || !viewGroup) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
const fieldMetadata = await this.fieldMetadataRepository.findOne({
|
||||||
|
where: { id: viewGroup.fieldMetadataId },
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!fieldMetadata) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
await this.fieldMetadataRelatedRecordsService.syncNoValueViewGroup(
|
||||||
|
fieldMetadata,
|
||||||
|
view,
|
||||||
|
viewGroupRepository,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
this.logger.error(
|
||||||
|
`Error backfilling view group no value for workspace ${workspaceId}: ${error}`,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user