[Requires "warm" cache flush (no immediate downtime before flush)] Migrate viewGroup.fieldMetadataId -> view.mainGroupByFieldMetadataId (1/3) (#16206)
In this PR (1/3) - introduce view.mainGroupByFieldMetadataId as the new reference determining which fieldMetadataId is used in a grouped view, in order to deprecate viewGroup.fieldMetadataId which creates inconsistencies. view.mainGroupByFieldMetadataId is now filled at every view creation, though not in use yet. - Introduce a command to backfill view.mainGroupByFieldMetadataId for existing views + delete all viewGroup.fieldMetadataId with a fieldMetadataId that is not view.mainGroupByFieldMetadataId. (It should concern 37 active workspaces) - Temporarily disable the option to change a grouped view's fieldMetadataId as for now it creates inconsistencies. This feature can be reintroduced when we have done the full migration. In a next PR - (2/3) use view.mainGroupByFieldMetadataId instead of viewGroup.fieldMetadataId. In FE we may keep viewGroup.fieldMetadataId as a state (TBD). View groups will now be created / deleted as a side effect of view's mainGroupByFieldMetadataId update. - (3/3) remove viewGroup.fieldMetadataId --------- Co-authored-by: Charles Bochet <charles@twenty.com>
This commit is contained in:
@@ -689,6 +689,7 @@ export type CoreView = {
|
||||
kanbanAggregateOperation?: Maybe<AggregateOperations>;
|
||||
kanbanAggregateOperationFieldMetadataId?: Maybe<Scalars['UUID']>;
|
||||
key?: Maybe<ViewKey>;
|
||||
mainGroupByFieldMetadataId?: Maybe<Scalars['UUID']>;
|
||||
name: Scalars['String'];
|
||||
objectMetadataId: Scalars['UUID'];
|
||||
openRecordIn: ViewOpenRecordIn;
|
||||
@@ -963,6 +964,7 @@ export type CreateViewInput = {
|
||||
kanbanAggregateOperation?: InputMaybe<AggregateOperations>;
|
||||
kanbanAggregateOperationFieldMetadataId?: InputMaybe<Scalars['UUID']>;
|
||||
key?: InputMaybe<ViewKey>;
|
||||
mainGroupByFieldMetadataId?: InputMaybe<Scalars['UUID']>;
|
||||
name: Scalars['String'];
|
||||
objectMetadataId: Scalars['UUID'];
|
||||
openRecordIn?: InputMaybe<ViewOpenRecordIn>;
|
||||
@@ -4258,6 +4260,7 @@ export type UpdateViewInput = {
|
||||
isCompact?: InputMaybe<Scalars['Boolean']>;
|
||||
kanbanAggregateOperation?: InputMaybe<AggregateOperations>;
|
||||
kanbanAggregateOperationFieldMetadataId?: InputMaybe<Scalars['UUID']>;
|
||||
mainGroupByFieldMetadataId?: InputMaybe<Scalars['UUID']>;
|
||||
name?: InputMaybe<Scalars['String']>;
|
||||
openRecordIn?: InputMaybe<ViewOpenRecordIn>;
|
||||
position?: InputMaybe<Scalars['Float']>;
|
||||
|
||||
Reference in New Issue
Block a user