Feat workspace migration maintains flat object metadata maps (#13620)
# Introduction The workspace migration runner v2 now computes the next flatObjectMetadataMaps post current ws migration action has been run So the following one have an up to date informations ## Still TODO ~~Remove any contextual information from workspace migration v2 and consume the optimistic cache to retrieve them~~ ## Next steps - Create flat-object-metadata-maps testing toolbox and flat-object/field testing toolbox - Implement strong coverage on every created utils/transpiler and applyWorkspaceMigrationAction method
This commit is contained in:
+1
-1
@@ -1,7 +1,7 @@
|
||||
import { FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
|
||||
import { FlatObjectMetadata } from 'src/engine/metadata-modules/flat-object-metadata/types/flat-object-metadata.type';
|
||||
|
||||
export const removeFlatFieldMetadataFromFlatObjectMetadatas = ({
|
||||
export const deleteFlatFieldMetadataFromFlatObjectMetadatas = ({
|
||||
flatFieldMetadata: flatFieldMetadataToRemove,
|
||||
flatObjectMetadatas,
|
||||
}: {
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
import { FlatObjectMetadataWithFlatFieldMaps } from 'src/engine/metadata-modules/flat-object-metadata-maps/types/flat-object-metadata-with-flat-field-metadata-maps.type';
|
||||
import { addFlatFieldMetadataToFlatObjectMetadataWithFlatFieldMapsOrThrow } from 'src/engine/metadata-modules/flat-object-metadata-maps/utils/add-flat-field-metadata-to-flat-object-metadata-with-flat-field-maps-or-throw.util';
|
||||
import { FlatObjectMetadata } from 'src/engine/metadata-modules/flat-object-metadata/types/flat-object-metadata.type';
|
||||
|
||||
export const fromFlatObjectMetadataToFlatObjectMetadataWithFlatFieldMaps = (
|
||||
flatObjectMetadata: FlatObjectMetadata,
|
||||
): FlatObjectMetadataWithFlatFieldMaps => {
|
||||
const emptyFlatObjectMetadataWithFlatFieldMaps: FlatObjectMetadataWithFlatFieldMaps =
|
||||
{
|
||||
...flatObjectMetadata,
|
||||
fieldIdByJoinColumnName: {},
|
||||
fieldIdByName: {},
|
||||
fieldsById: {},
|
||||
};
|
||||
|
||||
return flatObjectMetadata.flatFieldMetadatas.reduce(
|
||||
(flatObjectMetadataWithFlatFieldMaps, flatFieldMetadata) =>
|
||||
addFlatFieldMetadataToFlatObjectMetadataWithFlatFieldMapsOrThrow({
|
||||
flatFieldMetadata,
|
||||
flatObjectMetadataWithFlatFieldMaps,
|
||||
}),
|
||||
emptyFlatObjectMetadataWithFlatFieldMaps,
|
||||
);
|
||||
};
|
||||
+4
-1
@@ -11,7 +11,10 @@ import { ToMerge } from 'src/engine/workspace-manager/workspace-migration-v2/wor
|
||||
export const mergeTwoFlatObjectMetadatas = ({
|
||||
destFlatObjectMetadatas,
|
||||
toMergeFlatObjectMetadatas,
|
||||
}: ToMerge<FlatObjectMetadata[], 'object'>): FlatObjectMetadata[] => {
|
||||
}: ToMerge<
|
||||
FlatObjectMetadata[],
|
||||
'FlatObjectMetadatas'
|
||||
>): FlatObjectMetadata[] => {
|
||||
const initialObjectAccumulator = fromArrayToUniqueKeyRecord({
|
||||
array: destFlatObjectMetadatas,
|
||||
uniqueKey: 'uniqueIdentifier',
|
||||
|
||||
Reference in New Issue
Block a user