Fix unique index created twice (#7718)
`isUnique` was passed to TypeORM's column creation API resulting in double index creation because it's already done via the decorator and then in `WorkspaceMigrationIndexFactory` It would be interesting to move it at this field level in a later step, which is why I also fixed `CompositeColumnActionFactory` to pass isUnique on the correct columns, even though it's being ignored later on
This commit is contained in:
@ -183,7 +183,10 @@ export class CompositeColumnActionFactory extends ColumnActionAbstractFactory<Co
|
||||
enum: enumOptions,
|
||||
isNullable:
|
||||
alteredFieldMetadata.isNullable || !alteredProperty.isRequired,
|
||||
isUnique: alteredFieldMetadata.isUnique ?? false,
|
||||
isUnique:
|
||||
(alteredFieldMetadata.isUnique &&
|
||||
alteredProperty.isIncludedInUniqueConstraint) ??
|
||||
false,
|
||||
defaultValue: serializedDefaultValue,
|
||||
isArray:
|
||||
alteredProperty.type === FieldMetadataType.MULTI_SELECT ||
|
||||
|
||||
@ -402,7 +402,10 @@ export class WorkspaceMigrationRunnerService {
|
||||
enumName: enumName,
|
||||
isArray: migrationColumn.isArray,
|
||||
isNullable: migrationColumn.isNullable,
|
||||
isUnique: migrationColumn.isUnique,
|
||||
/* For now unique constraints are created at a higher level
|
||||
as we need to handle soft-delete and a bug on empty strings
|
||||
*/
|
||||
// isUnique: migrationColumn.isUnique,
|
||||
asExpression: migrationColumn.asExpression,
|
||||
generatedType: migrationColumn.generatedType,
|
||||
}),
|
||||
|
||||
@ -22,6 +22,7 @@ import { WorkspaceField } from 'src/engine/twenty-orm/decorators/workspace-field
|
||||
import { WorkspaceIsDeprecated } from 'src/engine/twenty-orm/decorators/workspace-is-deprecated.decorator';
|
||||
import { WorkspaceIsNullable } from 'src/engine/twenty-orm/decorators/workspace-is-nullable.decorator';
|
||||
import { WorkspaceIsSystem } from 'src/engine/twenty-orm/decorators/workspace-is-system.decorator';
|
||||
import { WorkspaceIsUnique } from 'src/engine/twenty-orm/decorators/workspace-is-unique.decorator';
|
||||
import { WorkspaceJoinColumn } from 'src/engine/twenty-orm/decorators/workspace-join-column.decorator';
|
||||
import { WorkspaceRelation } from 'src/engine/twenty-orm/decorators/workspace-relation.decorator';
|
||||
import { PERSON_STANDARD_FIELD_IDS } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids';
|
||||
@ -79,10 +80,7 @@ export class PersonWorkspaceEntity extends BaseWorkspaceEntity {
|
||||
description: 'Contact’s Emails',
|
||||
icon: 'IconMail',
|
||||
})
|
||||
/*
|
||||
TODO: add back once we handle TEXT Unique index properly
|
||||
@WorkspaceIsUnique()
|
||||
*/
|
||||
[EMAILS_FIELD_NAME]: EmailsMetadata;
|
||||
|
||||
@WorkspaceField({
|
||||
|
||||
Reference in New Issue
Block a user