twentyhq / twenty

Building a modern alternative to Salesforce, powered by the community.
https://twenty.com
GNU Affero General Public License v3.0
15.67k stars 1.69k forks source link

No TimeLine Events #6187

Closed mnbro closed 1 month ago

mnbro commented 1 month ago

Hi,

For all v0.21.x of twentycrm for Any selected object there is No Event in TimeLine.

I think is related to this:

GraphQLError:relation "workspace_1tijfbhq4kpru5g3bwbr1anui.calendarEvent" does not exist File "/app/node_modules/typeorm/driver/postgres/PostgresQueryRunner.js", line 219, col 19, in PostgresQueryRunner.query throw new QueryFailedError_1.QueryFailedError(query, parameters, err); File "node:internal/process/task_queues", line 95, col 5, in process.processTicksAndRejections File "/app/node_modules/typeorm/query-builder/SelectQueryBuilder.js", line 2192, col 25, in SelectQueryBuilder.loadRawResults const results = await queryRunner.query(sql, parameters, true); File "/app/node_modules/typeorm/query-builder/SelectQueryBuilder.js", line 646, col 29, in SelectQueryBuilder.getRawMany const results = await this.loadRawResults(queryRunner); File "/app/node_modules/typeorm/query-builder/SelectQueryBuilder.js", line 1979, col 26, in SelectQueryBuilder.executeEntitiesAndRawResults rawResults = await new SelectQueryBuilder(this.connection, queryRunner) File "/app/node_modules/typeorm/query-builder/SelectQueryBuilder.js", line 684, col 29, in SelectQueryBuilder.getRawAndEntities const results = await this.executeEntitiesAndRawResults(queryRunner); File "/app/node_modules/typeorm/query-builder/SelectQueryBuilder.js", line 750, col 25, in SelectQueryBuilder.getMany const results = await this.getRawAndEntities(); File "/app/packages/twenty-server/dist/src/engine/twenty-orm/repository/workspace.repository.js", line 24, col 24, in WorkspaceRepository.find const result = await manager.find(this.target, computedOptions); File "/app/packages/twenty-server/dist/src/engine/core-modules/calendar/timeline-calendar-event.service.js", line 43, col 34, in TimelineCalendarEventService.getCalendarEventsFromPersonIds const calendarEventIds = await this.calendarEventRepository.find({ File "/app/packages/twenty-server/dist/src/engine/core-modules/calendar/timeline-calendar-event.resolver.js", line 74, col 40, in TimelineCalendarEventResolver.getTimelineCalendarEventsFromPersonId const timelineCalendarEvents = await this.timelineCalendarEventService.getCalendarEventsFromPersonIds([

Additional Info(I have no Google Account Integration configured):

query GetTimelineCalendarEventsFromPersonId($personId: UUID!, $page: Int!, $pageSize: Int!) { getTimelineCalendarEventsFromPersonId( personId: $personId page: $page pageSize: $pageSize ) { ...TimelineCalendarEventsWithTotalFragment __typename } } fragment TimelineCalendarEventsWithTotalFragment on TimelineCalendarEventsWithTotal { totalNumberOfCalendarEvents timelineCalendarEvents { ...TimelineCalendarEventFragment __typename } __typename } fragment TimelineCalendarEventFragment on TimelineCalendarEvent { id title description location startsAt endsAt isFullDay visibility participants { ...TimelineCalendarEventParticipantFragment __typename } __typename } fragment TimelineCalendarEventParticipantFragment on TimelineCalendarEventParticipant { personId workspaceMemberId firstName lastName displayName avatarUrl handle __typename }

Do you need other related info?

greptile-apps[bot] commented 1 month ago

The issue appears to be related to a missing relation in the database schema. Specifically, the relation 'workspace_1tijfbhq4kpru5g3bwbr1anui.calendarEvent' does not exist. Here are the steps to resolve this:

  1. Check Database Schema: Ensure that the calendarEvent table exists in the specified workspace schema (workspace_1tijfbhq4kpru5g3bwbr1anui).

  2. Verify Entity Configuration: Confirm that the CalendarEventWorkspaceEntity is correctly configured in /packages/twenty-server/src/modules/calendar/common/standard-objects/calendar-event.workspace-entity.ts.

  3. Update Schema if Necessary: If the table or relation is missing, update the database schema to include the calendarEvent table. You may need to run migrations or manually create the table.

  4. Check Repository Usage: Ensure that the calendarEventRepository is correctly injected and used in /packages/twenty-server/src/engine/core-modules/calendar/timeline-calendar-event.service.ts.

  5. Review GraphQL Queries: Verify that the GraphQL queries in /packages/twenty-front/src/modules/activities/calendar/queries/getTimelineCalendarEventsFromPersonId.ts and /packages/twenty-front/src/modules/activities/calendar/queries/getTimelineCalendarEventsFromCompanyId.ts are correctly formed and match the expected schema.

By following these steps, you should be able to identify and resolve the issue with the missing timeline events.

References

/packages/twenty-server/src/engine/core-modules/calendar/timeline-calendar-event.resolver.ts /packages/twenty-server/src/engine/core-modules/calendar/timeline-calendar-event.service.ts /packages/twenty-server/src/engine/core-modules/calendar/dtos/timeline-calendar-event.dto.ts /packages/twenty-server/src/engine/core-modules/calendar/dtos/timeline-calendar-event-participant.dto.ts /packages/twenty-server/src/engine/core-modules/calendar/dtos/timeline-calendar-events-with-total.dto.ts /packages/twenty-front/src/modules/activities/calendar/queries/getTimelineCalendarEventsFromPersonId.ts /packages/twenty-front/src/modules/activities/calendar/queries/getTimelineCalendarEventsFromCompanyId.ts /packages/twenty-front/src/modules/activities/calendar/queries/fragments/timelineCalendarEventParticipantFragment.ts /packages/twenty-front/src/modules/activities/calendar/queries/fragments /packages/twenty-server/src/modules/calendar/repositories/calendar-event /packages/twenty-server/src/engine/core-modules/calendar/dtos

#### About Greptile This response provides a starting point for your research, not a precise solution. Help us improve! Please leave a 👍 if this is helpful and 👎 if it is irrelevant. [Ask Greptile](https://app.greptile.com/chat/github/twentyhq/twenty/main) · [Edit Issue Bot Settings](https://app.greptile.com/apps/github)
FelixMalfait commented 1 month ago

Mmh if workspace_1tijfbhq4kpru5g3bwbr1anui.calendarEvent event doesn't exist it means migration weren't ran properly on your database. CalendarEvent are not directly related to the Timeline. The object being used for the timeline is called timelineActivity

mnbro commented 1 month ago

Mmh if workspace_1tijfbhq4kpru5g3bwbr1anui.calendarEvent event doesn't exist it means migration weren't ran properly on your database. CalendarEvent are not directly related to the Timeline. The object being used for the timeline is called timelineActivity

How can I manually run the migration?

FelixMalfait commented 1 month ago

Try running yarn command:prod workspace:sync-metadata -w WORKSPACE_ID -f with the broken workspace's id? Sorry it's not easy yet, it will be directly in-product one day

mnbro commented 1 month ago

Try running yarn command:prod workspace:sync-metadata -w WORKSPACE_ID -f with the broken workspace's id? Sorry it's not easy yet, it will be directly in-product one day

Below is the output from command. It doesn't seem to work:

[Nest] 1304 - 07/10/2024, 9:17:24 AM WARN [SyncWorkspaceMetadataCommand] Workspace contains 3 issues, sync has been forced. query failed: SELECT "IndexMetadataEntity"."id" AS "IndexMetadataEntity_id", "IndexMetadataEntity"."name" AS "IndexMetadataEntity_name", "IndexMetadataEntity"."workspaceId" AS "IndexMetadataEntity_workspaceId", "IndexMetadataEntity"."objectMetadataId" AS "IndexMetadataEntity_objectMetadataId", "IndexMetadataEntity__IndexMetadataEntity_indexFieldMetadatas"."id" AS "IndexMetadataEntity__IndexMetadataEntity_indexFieldMetadatas_id", "IndexMetadataEntity__IndexMetadataEntity_indexFieldMetadatas"."indexMetadataId" AS "84581924c7de1f6c615eb371e16bdfb4017c1f6a", "IndexMetadataEntity__IndexMetadataEntity_indexFieldMetadatas"."fieldMetadataId" AS "7ee8fc352842480ecd5c0e029bf8f8e0f6b3e0f9", "IndexMetadataEntity__IndexMetadataEntity_indexFieldMetadatas"."order" AS "273e6dbf4dce99c899b3667616ff550fa0059f44", "ac68102b0e924698a47fd6733e04231a61f251df"."id" AS "ac68102b0e924698a47fd6733e04231a61f251df_id", "ac68102b0e924698a47fd6733e04231a61f251df"."standardId" AS "ac68102b0e924698a47fd6733e04231a61f251df_standardId", "ac68102b0e924698a47fd6733e04231a61f251df"."objectMetadataId" AS "ac68102b0e924698a47fd6733e04231a61f251df_objectMetadataId", "ac68102b0e924698a47fd6733e04231a61f251df"."type" AS "ac68102b0e924698a47fd6733e04231a61f251df_type", "ac68102b0e924698a47fd6733e04231a61f251df"."name" AS "ac68102b0e924698a47fd6733e04231a61f251df_name", "ac68102b0e924698a47fd6733e04231a61f251df"."label" AS "ac68102b0e924698a47fd6733e04231a61f251df_label", "ac68102b0e924698a47fd6733e04231a61f251df"."defaultValue" AS "ac68102b0e924698a47fd6733e04231a61f251df_defaultValue", "ac68102b0e924698a47fd6733e04231a61f251df"."description" AS "ac68102b0e924698a47fd6733e04231a61f251df_description", "ac68102b0e924698a47fd6733e04231a61f251df"."icon" AS "ac68102b0e924698a47fd6733e04231a61f251df_icon", "ac68102b0e924698a47fd6733e04231a61f251df"."options" AS "ac68102b0e924698a47fd6733e04231a61f251df_options", "ac68102b0e924698a47fd6733e04231a61f251df"."settings" AS "ac68102b0e924698a47fd6733e04231a61f251df_settings", "ac68102b0e924698a47fd6733e04231a61f251df"."isCustom" AS "ac68102b0e924698a47fd6733e04231a61f251df_isCustom", "ac68102b0e924698a47fd6733e04231a61f251df"."isActive" AS "ac68102b0e924698a47fd6733e04231a61f251df_isActive", "ac68102b0e924698a47fd6733e04231a61f251df"."isSystem" AS "ac68102b0e924698a47fd6733e04231a61f251df_isSystem", "ac68102b0e924698a47fd6733e04231a61f251df"."isNullable" AS "ac68102b0e924698a47fd6733e04231a61f251df_isNullable", "ac68102b0e924698a47fd6733e04231a61f251df"."workspaceId" AS "ac68102b0e924698a47fd6733e04231a61f251df_workspaceId", "ac68102b0e924698a47fd6733e04231a61f251df"."createdAt" AS "ac68102b0e924698a47fd6733e04231a61f251df_createdAt", "ac68102b0e924698a47fd6733e04231a61f251df"."updatedAt" AS "ac68102b0e924698a47fd6733e04231a61f251df_updatedAt" FROM "metadata"."indexMetadata" "IndexMetadataEntity" LEFT JOIN "metadata"."indexFieldMetadata" "IndexMetadataEntity__IndexMetadataEntity_indexFieldMetadatas" ON "IndexMetadataEntity__IndexMetadataEntity_indexFieldMetadatas"."indexMetadataId"="IndexMetadataEntity"."id" LEFT JOIN "metadata"."fieldMetadata" "ac68102b0e924698a47fd6733e04231a61f251df" ON "ac68102b0e924698a47fd6733e04231a61f251df"."id"="IndexMetadataEntity__IndexMetadataEntity_indexFieldMetadatas"."fieldMetadataId" WHERE (("IndexMetadataEntity"."workspaceId" = $1)) -- PARAMETERS: ["1ebd58bb-9f92-468e-b087-f769c9e5343a"] error: error: relation "metadata.indexMetadata" does not exist Sync of standard objects failed with: QueryFailedError: relation "metadata.indexMetadata" does not exist at PostgresQueryRunner.query (/app/node_modules/typeorm/driver/postgres/PostgresQueryRunner.js:219:19) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) at async SelectQueryBuilder.loadRawResults (/app/node_modules/typeorm/query-builder/SelectQueryBuilder.js:2192:25) at async SelectQueryBuilder.executeEntitiesAndRawResults (/app/node_modules/typeorm/query-builder/SelectQueryBuilder.js:2040:26) at async SelectQueryBuilder.getRawAndEntities (/app/node_modules/typeorm/query-builder/SelectQueryBuilder.js:684:29) at async SelectQueryBuilder.getMany (/app/node_modules/typeorm/query-builder/SelectQueryBuilder.js:750:25) at async WorkspaceSyncIndexMetadataService.synchronize (/app/packages/twenty-server/dist/src/engine/workspace-manager/workspace-sync-metadata/services/workspace-sync-index-metadata.service.js:55:49) at async WorkspaceSyncMetadataService.synchronize (/app/packages/twenty-server/dist/src/engine/workspace-manager/workspace-sync-metadata/workspace-sync-metadata.service.js:67:46) at async SyncWorkspaceMetadataCommand.run (/app/packages/twenty-server/dist/src/engine/workspace-manager/workspace-sync-metadata/commands/sync-workspace-metadata.command.js:52:54) at async Command.<anonymous> (/app/node_modules/nest-commander/src/command-runner.service.js:156:24) { query: 'SELECT "IndexMetadataEntity"."id" AS "IndexMetadataEntity_id", "IndexMetadataEntity"."name" AS "IndexMetadataEntity_name", "IndexMetadataEntity"."workspaceId" AS "IndexMetadataEntity_workspaceId", "IndexMetadataEntity"."objectMetadataId" AS "IndexMetadataEntity_objectMetadataId", "IndexMetadataEntity__IndexMetadataEntity_indexFieldMetadatas"."id" AS "IndexMetadataEntity__IndexMetadataEntity_indexFieldMetadatas_id", "IndexMetadataEntity__IndexMetadataEntity_indexFieldMetadatas"."indexMetadataId" AS "84581924c7de1f6c615eb371e16bdfb4017c1f6a", "IndexMetadataEntity__IndexMetadataEntity_indexFieldMetadatas"."fieldMetadataId" AS "7ee8fc352842480ecd5c0e029bf8f8e0f6b3e0f9", "IndexMetadataEntity__IndexMetadataEntity_indexFieldMetadatas"."order" AS "273e6dbf4dce99c899b3667616ff550fa0059f44", "ac68102b0e924698a47fd6733e04231a61f251df"."id" AS "ac68102b0e924698a47fd6733e04231a61f251df_id", "ac68102b0e924698a47fd6733e04231a61f251df"."standardId" AS "ac68102b0e924698a47fd6733e04231a61f251df_standardId", "ac68102b0e924698a47fd6733e04231a61f251df"."objectMetadataId" AS "ac68102b0e924698a47fd6733e04231a61f251df_objectMetadataId", "ac68102b0e924698a47fd6733e04231a61f251df"."type" AS "ac68102b0e924698a47fd6733e04231a61f251df_type", "ac68102b0e924698a47fd6733e04231a61f251df"."name" AS "ac68102b0e924698a47fd6733e04231a61f251df_name", "ac68102b0e924698a47fd6733e04231a61f251df"."label" AS "ac68102b0e924698a47fd6733e04231a61f251df_label", "ac68102b0e924698a47fd6733e04231a61f251df"."defaultValue" AS "ac68102b0e924698a47fd6733e04231a61f251df_defaultValue", "ac68102b0e924698a47fd6733e04231a61f251df"."description" AS "ac68102b0e924698a47fd6733e04231a61f251df_description", "ac68102b0e924698a47fd6733e04231a61f251df"."icon" AS "ac68102b0e924698a47fd6733e04231a61f251df_icon", "ac68102b0e924698a47fd6733e04231a61f251df"."options" AS "ac68102b0e924698a47fd6733e04231a61f251df_options", "ac68102b0e924698a47fd6733e04231a61f251df"."settings" AS "ac68102b0e924698a47fd6733e04231a61f251df_settings", "ac68102b0e924698a47fd6733e04231a61f251df"."isCustom" AS "ac68102b0e924698a47fd6733e04231a61f251df_isCustom", "ac68102b0e924698a47fd6733e04231a61f251df"."isActive" AS "ac68102b0e924698a47fd6733e04231a61f251df_isActive", "ac68102b0e924698a47fd6733e04231a61f251df"."isSystem" AS "ac68102b0e924698a47fd6733e04231a61f251df_isSystem", "ac68102b0e924698a47fd6733e04231a61f251df"."isNullable" AS "ac68102b0e924698a47fd6733e04231a61f251df_isNullable", "ac68102b0e924698a47fd6733e04231a61f251df"."workspaceId" AS "ac68102b0e924698a47fd6733e04231a61f251df_workspaceId", "ac68102b0e924698a47fd6733e04231a61f251df"."createdAt" AS "ac68102b0e924698a47fd6733e04231a61f251df_createdAt", "ac68102b0e924698a47fd6733e04231a61f251df"."updatedAt" AS "ac68102b0e924698a47fd6733e04231a61f251df_updatedAt" FROM "metadata"."indexMetadata" "IndexMetadataEntity" LEFT JOIN "metadata"."indexFieldMetadata" "IndexMetadataEntity__IndexMetadataEntity_indexFieldMetadatas" ON "IndexMetadataEntity__IndexMetadataEntity_indexFieldMetadatas"."indexMetadataId"="IndexMetadataEntity"."id" LEFT JOIN "metadata"."fieldMetadata" "ac68102b0e924698a47fd6733e04231a61f251df" ON "ac68102b0e924698a47fd6733e04231a61f251df"."id"="IndexMetadataEntity__IndexMetadataEntity_indexFieldMetadatas"."fieldMetadataId" WHERE (("IndexMetadataEntity"."workspaceId" = $1))', parameters: [ '1ebd58bb-9f92-468e-b087-f769c9e5343a' ], driverError: error: relation "metadata.indexMetadata" does not exist at /app/node_modules/pg/lib/client.js:526:17 at process.processTicksAndRejections (node:internal/process/task_queues:95:5) at async PostgresQueryRunner.query (/app/node_modules/typeorm/driver/postgres/PostgresQueryRunner.js:184:25) at async SelectQueryBuilder.loadRawResults (/app/node_modules/typeorm/query-builder/SelectQueryBuilder.js:2192:25) at async SelectQueryBuilder.executeEntitiesAndRawResults (/app/node_modules/typeorm/query-builder/SelectQueryBuilder.js:2040:26) at async SelectQueryBuilder.getRawAndEntities (/app/node_modules/typeorm/query-builder/SelectQueryBuilder.js:684:29) at async SelectQueryBuilder.getMany (/app/node_modules/typeorm/query-builder/SelectQueryBuilder.js:750:25) at async WorkspaceSyncIndexMetadataService.synchronize (/app/packages/twenty-server/dist/src/engine/workspace-manager/workspace-sync-metadata/services/workspace-sync-index-metadata.service.js:55:49) at async WorkspaceSyncMetadataService.synchronize (/app/packages/twenty-server/dist/src/engine/workspace-manager/workspace-sync-metadata/workspace-sync-metadata.service.js:67:46) at async SyncWorkspaceMetadataCommand.run (/app/packages/twenty-server/dist/src/engine/workspace-manager/workspace-sync-metadata/commands/sync-workspace-metadata.command.js:52:54) { length: 123, severity: 'ERROR', code: '42P01', detail: undefined, hint: undefined, position: '2782', internalPosition: undefined, internalQuery: undefined, where: undefined, schema: undefined, table: undefined, column: undefined, dataType: undefined, constraint: undefined, file: 'parse_relation.c', line: '1371', routine: 'parserOpenTable' }, length: 123, severity: 'ERROR', code: '42P01', detail: undefined, hint: undefined, position: '2782', internalPosition: undefined, internalQuery: undefined, where: undefined, schema: undefined, table: undefined, column: undefined, dataType: undefined, constraint: undefined, file: 'parse_relation.c', line: '1371', routine: 'parserOpenTable' }

mnbro commented 1 month ago

@FelixMalfait meanwhile I had to recreate all the model of the database in 0.20.

I'm waiting for someone to answer about the upgrade process from 0.20. I aslo wrote on discord (no answer)

FelixMalfait commented 1 month ago

@mnbro yes sorry about that we suck at facilitating upgrades, that's part of the reason why we're still in alpha. 0.22 to 0.23 and all updates forward will be properly documented at least.

Based on the error above, you also need to migrate the core schema before running yarn command:prod workspace:sync-metadata -w WORKSPACE_ID -f ; to do that you should run yarn database:migrate:prod before, that will create the missing indexMetadata column mentioned in the error

mnbro commented 1 month ago

@mnbro yes sorry about that we suck at facilitating upgrades, that's part of the reason why we're still in alpha. 0.22 to 0.23 and all updates forward will be properly documented at least.

Based on the error above, you also need to migrate the core schema before running yarn command:prod workspace:sync-metadata -w WORKSPACE_ID -f ; to do that you should run yarn database:migrate:prod before, that will create the missing indexMetadata column mentioned in the error

@FelixMalfait Thank you for your answer.

I hope that for the future versions and/or when you will go in beta you will have procedures for all previous versions, not only starting from 0.21. I'll wait for that moment before trying again to upgrade.

FelixMalfait commented 1 month ago

No we will not have procedure for previous versions, so I wouldd upgrade sooner than later to avoid losing the train. Sorry

mnbro commented 1 month ago

@FelixMalfait Ok, so I pulled the trigger and did the upgrade to 0.22 with no errors being returned by any command. The timeline events are present.

But when I yarn command:prod workspace:health I receive [WorkspaceHealthCommand] Workspace is not healthy, found 2 issues.

My question is: Was the upgrade process successful?

FelixMalfait commented 1 month ago

@mnbro yes I'm no expert on that side but I believe there are some minor elements that can cause to say a workspace is not healthy but that are not an issue. If everything works on the app, you're good!

mnbro commented 1 month ago

I managed to find how to get more details on the errors.

Can i assume that everything is OK given the below?

[ { "type": "COLUMN_NULLABILITY_CONFLICT", "fieldMetadata": { "id": "a965f77e-5381-430b-9cf8-18f152e12db9", "standardId": "20202020-e914-43a6-9c26-3603c59065f4", "objectMetadataId": "a890f95a-3c62-4403-823f-1c1839ddcbca", "type": "FULL_NAME", "name": "name", "label": "Name", "defaultValue": { "lastName": "''", "firstName": "''" }, "description": "Workspace member name", "icon": "IconCircleUser", "options": null, "settings": null, "isCustom": false, "isActive": true, "isSystem": true, "isNullable": false, "workspaceId": "eb157b19-7341-42cc-8390-614cfb802350", "createdAt": "2024-07-15T15:33:34.187Z", "updatedAt": "2024-07-15T15:33:34.187Z", "object": { "id": "a890f95a-3c62-4403-823f-1c1839ddcbca", "standardId": "20202020-3319-4234-a34c-82d5c0e881a6", "dataSourceId": "d120d161-7f6f-423b-b356-16af28878ce6", "nameSingular": "workspaceMember", "namePlural": "workspaceMembers", "labelSingular": "Workspace Member", "labelPlural": "Workspace Members", "description": "A workspace member", "icon": "IconUserCircle", "targetTableName": "DEPRECATED", "isCustom": false, "isRemote": false, "isActive": true, "isSystem": true, "isAuditLogged": false, "labelIdentifierFieldMetadataId": null, "imageIdentifierFieldMetadataId": null, "workspaceId": "eb157b19-7341-42cc-8390-614cfb802350", "createdAt": "2024-07-15T15:33:34.187Z", "updatedAt": "2024-07-15T15:33:34.187Z" }, "fromRelationMetadata": null, "toRelationMetadata": null }, "columnStructure": { "tableSchema": "workspace_dx14ktp2l6zvlyyr56b1rtykw", "tableName": "workspaceMember", "columnName": "nameFirstName", "dataType": "text", "isNullable": true, "columnDefault": "''::text", "isPrimaryKey": false, "isForeignKey": false, "isUnique": false, "isArray": false, "onUpdateAction": null, "onDeleteAction": null }, "message": "Column nameFirstName is expected to be not nullable but is nullable" }, { "type": "COLUMN_NULLABILITY_CONFLICT", "fieldMetadata": { "id": "a965f77e-5381-430b-9cf8-18f152e12db9", "standardId": "20202020-e914-43a6-9c26-3603c59065f4", "objectMetadataId": "a890f95a-3c62-4403-823f-1c1839ddcbca", "type": "FULL_NAME", "name": "name", "label": "Name", "defaultValue": { "lastName": "''", "firstName": "''" }, "description": "Workspace member name", "icon": "IconCircleUser", "options": null, "settings": null, "isCustom": false, "isActive": true, "isSystem": true, "isNullable": false, "workspaceId": "eb157b19-7341-42cc-8390-614cfb802350", "createdAt": "2024-07-15T15:33:34.187Z", "updatedAt": "2024-07-15T15:33:34.187Z", "object": { "id": "a890f95a-3c62-4403-823f-1c1839ddcbca", "standardId": "20202020-3319-4234-a34c-82d5c0e881a6", "dataSourceId": "d120d161-7f6f-423b-b356-16af28878ce6", "nameSingular": "workspaceMember", "namePlural": "workspaceMembers", "labelSingular": "Workspace Member", "labelPlural": "Workspace Members", "description": "A workspace member", "icon": "IconUserCircle", "targetTableName": "DEPRECATED", "isCustom": false, "isRemote": false, "isActive": true, "isSystem": true, "isAuditLogged": false, "labelIdentifierFieldMetadataId": null, "imageIdentifierFieldMetadataId": null, "workspaceId": "eb157b19-7341-42cc-8390-614cfb802350", "createdAt": "2024-07-15T15:33:34.187Z", "updatedAt": "2024-07-15T15:33:34.187Z" }, "fromRelationMetadata": null, "toRelationMetadata": null }, "columnStructure": { "tableSchema": "workspace_dx14ktp2l6zvlyyr56b1rtykw", "tableName": "workspaceMember", "columnName": "nameLastName", "dataType": "text", "isNullable": true, "columnDefault": "''::text", "isPrimaryKey": false, "isForeignKey": false, "isUnique": false, "isArray": false, "onUpdateAction": null, "onDeleteAction": null }, "message": "Column nameLastName is expected to be not nullable but is nullable" }

FelixMalfait commented 1 month ago

@mnbro yes that shouldn't cause any issue

mnbro commented 1 month ago

For anyone else looking to upgrade from version previous to 0.20 please see this