@contember/schema-migrations 1.2.0-alpha.1 → 1.2.0-alpha.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/MigrationDescriber.d.ts +1 -2
- package/dist/src/MigrationDescriber.d.ts.map +1 -1
- package/dist/src/MigrationDescriber.js +5 -7
- package/dist/src/MigrationDescriber.js.map +1 -1
- package/dist/src/SchemaDiffer.d.ts.map +1 -1
- package/dist/src/SchemaDiffer.js +36 -46
- package/dist/src/SchemaDiffer.js.map +1 -1
- package/dist/src/SchemaMigrator.d.ts +1 -1
- package/dist/src/SchemaMigrator.d.ts.map +1 -1
- package/dist/src/index.d.ts +1 -5
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -11
- package/dist/src/index.js.map +1 -1
- package/dist/src/modifications/ModificationHandler.d.ts +11 -6
- package/dist/src/modifications/ModificationHandler.d.ts.map +1 -1
- package/dist/src/modifications/ModificationHandler.js +9 -1
- package/dist/src/modifications/ModificationHandler.js.map +1 -1
- package/dist/src/modifications/ModificationHandlerFactory.d.ts +6 -5
- package/dist/src/modifications/ModificationHandlerFactory.d.ts.map +1 -1
- package/dist/src/modifications/ModificationHandlerFactory.js +42 -37
- package/dist/src/modifications/ModificationHandlerFactory.js.map +1 -1
- package/dist/src/modifications/acl/PatchAclSchemaModification.d.ts +13 -2
- package/dist/src/modifications/acl/PatchAclSchemaModification.d.ts.map +1 -1
- package/dist/src/modifications/acl/PatchAclSchemaModification.js +28 -28
- package/dist/src/modifications/acl/PatchAclSchemaModification.js.map +1 -1
- package/dist/src/modifications/acl/UpdateAclSchemaModification.d.ts +17 -3
- package/dist/src/modifications/acl/UpdateAclSchemaModification.d.ts.map +1 -1
- package/dist/src/modifications/acl/UpdateAclSchemaModification.js +33 -30
- package/dist/src/modifications/acl/UpdateAclSchemaModification.js.map +1 -1
- package/dist/src/modifications/columns/CreateColumnModification.d.ts +23 -3
- package/dist/src/modifications/columns/CreateColumnModification.d.ts.map +1 -1
- package/dist/src/modifications/columns/CreateColumnModification.js +72 -69
- package/dist/src/modifications/columns/CreateColumnModification.js.map +1 -1
- package/dist/src/modifications/columns/UpdateColumnDefinitionModification.d.ts +21 -3
- package/dist/src/modifications/columns/UpdateColumnDefinitionModification.d.ts.map +1 -1
- package/dist/src/modifications/columns/UpdateColumnDefinitionModification.js +72 -71
- package/dist/src/modifications/columns/UpdateColumnDefinitionModification.js.map +1 -1
- package/dist/src/modifications/columns/UpdateColumnNameModification.d.ts +20 -2
- package/dist/src/modifications/columns/UpdateColumnNameModification.d.ts.map +1 -1
- package/dist/src/modifications/columns/UpdateColumnNameModification.js +97 -94
- package/dist/src/modifications/columns/UpdateColumnNameModification.js.map +1 -1
- package/dist/src/modifications/constraints/CreateUniqueConstraintModification.d.ts +21 -3
- package/dist/src/modifications/constraints/CreateUniqueConstraintModification.d.ts.map +1 -1
- package/dist/src/modifications/constraints/CreateUniqueConstraintModification.js +72 -66
- package/dist/src/modifications/constraints/CreateUniqueConstraintModification.js.map +1 -1
- package/dist/src/modifications/constraints/RemoveUniqueConstraintModification.d.ts +18 -2
- package/dist/src/modifications/constraints/RemoveUniqueConstraintModification.d.ts.map +1 -1
- package/dist/src/modifications/constraints/RemoveUniqueConstraintModification.js +45 -42
- package/dist/src/modifications/constraints/RemoveUniqueConstraintModification.js.map +1 -1
- package/dist/src/modifications/differs/ChangeViewNonViewDiffer.js +1 -1
- package/dist/src/modifications/differs/RemoveChangedFieldDiffer.js +1 -1
- package/dist/src/modifications/differs/RemoveChangedViewDiffer.js +1 -1
- package/dist/src/modifications/entities/CreateEntityModification.d.ts +21 -6
- package/dist/src/modifications/entities/CreateEntityModification.d.ts.map +1 -1
- package/dist/src/modifications/entities/CreateEntityModification.js +66 -62
- package/dist/src/modifications/entities/CreateEntityModification.js.map +1 -1
- package/dist/src/modifications/entities/CreateViewModification.d.ts +23 -6
- package/dist/src/modifications/entities/CreateViewModification.d.ts.map +1 -1
- package/dist/src/modifications/entities/CreateViewModification.js +59 -55
- package/dist/src/modifications/entities/CreateViewModification.js.map +1 -1
- package/dist/src/modifications/entities/RemoveEntityModification.d.ts +21 -2
- package/dist/src/modifications/entities/RemoveEntityModification.d.ts.map +1 -1
- package/dist/src/modifications/entities/RemoveEntityModification.js +73 -70
- package/dist/src/modifications/entities/RemoveEntityModification.js.map +1 -1
- package/dist/src/modifications/entities/ToggleEventLogModification.d.ts +19 -2
- package/dist/src/modifications/entities/ToggleEventLogModification.d.ts.map +1 -1
- package/dist/src/modifications/entities/ToggleEventLogModification.js +57 -54
- package/dist/src/modifications/entities/ToggleEventLogModification.js.map +1 -1
- package/dist/src/modifications/entities/UpdateEntityNameModification.d.ts +18 -2
- package/dist/src/modifications/entities/UpdateEntityNameModification.d.ts.map +1 -1
- package/dist/src/modifications/entities/UpdateEntityNameModification.js +78 -78
- package/dist/src/modifications/entities/UpdateEntityNameModification.js.map +1 -1
- package/dist/src/modifications/entities/UpdateEntityTableNameModification.d.ts +18 -2
- package/dist/src/modifications/entities/UpdateEntityTableNameModification.d.ts.map +1 -1
- package/dist/src/modifications/entities/UpdateEntityTableNameModification.js +40 -34
- package/dist/src/modifications/entities/UpdateEntityTableNameModification.js.map +1 -1
- package/dist/src/modifications/entities/UpdateViewModification.d.ts +15 -3
- package/dist/src/modifications/entities/UpdateViewModification.d.ts.map +1 -1
- package/dist/src/modifications/entities/UpdateViewModification.js +28 -28
- package/dist/src/modifications/entities/UpdateViewModification.js.map +1 -1
- package/dist/src/modifications/enums/CreateEnumModification.d.ts +18 -2
- package/dist/src/modifications/enums/CreateEnumModification.d.ts.map +1 -1
- package/dist/src/modifications/enums/CreateEnumModification.js +42 -36
- package/dist/src/modifications/enums/CreateEnumModification.js.map +1 -1
- package/dist/src/modifications/enums/RemoveEnumModification.d.ts +18 -2
- package/dist/src/modifications/enums/RemoveEnumModification.d.ts.map +1 -1
- package/dist/src/modifications/enums/RemoveEnumModification.js +36 -33
- package/dist/src/modifications/enums/RemoveEnumModification.js.map +1 -1
- package/dist/src/modifications/enums/UpdateEnumModification.d.ts +19 -2
- package/dist/src/modifications/enums/UpdateEnumModification.d.ts.map +1 -1
- package/dist/src/modifications/enums/UpdateEnumModification.js +43 -40
- package/dist/src/modifications/enums/UpdateEnumModification.js.map +1 -1
- package/dist/src/modifications/fields/RemoveFieldModification.d.ts +20 -2
- package/dist/src/modifications/fields/RemoveFieldModification.d.ts.map +1 -1
- package/dist/src/modifications/fields/RemoveFieldModification.js +67 -64
- package/dist/src/modifications/fields/RemoveFieldModification.js.map +1 -1
- package/dist/src/modifications/fields/UpdateFieldNameModification.d.ts +18 -2
- package/dist/src/modifications/fields/UpdateFieldNameModification.d.ts.map +1 -1
- package/dist/src/modifications/fields/UpdateFieldNameModification.js +132 -132
- package/dist/src/modifications/fields/UpdateFieldNameModification.js.map +1 -1
- package/dist/src/modifications/index.d.ts +14 -0
- package/dist/src/modifications/index.d.ts.map +1 -0
- package/dist/src/modifications/index.js +32 -0
- package/dist/src/modifications/index.js.map +1 -0
- package/dist/src/modifications/indexes/CreateIndexModification.d.ts +23 -0
- package/dist/src/modifications/indexes/CreateIndexModification.d.ts.map +1 -0
- package/dist/src/modifications/indexes/CreateIndexModification.js +75 -0
- package/dist/src/modifications/indexes/CreateIndexModification.js.map +1 -0
- package/dist/src/modifications/indexes/RemoveIndexModification.d.ts +23 -0
- package/dist/src/modifications/indexes/RemoveIndexModification.d.ts.map +1 -0
- package/dist/src/modifications/indexes/RemoveIndexModification.js +56 -0
- package/dist/src/modifications/indexes/RemoveIndexModification.js.map +1 -0
- package/dist/src/modifications/indexes/index.d.ts +3 -0
- package/dist/src/modifications/indexes/index.d.ts.map +1 -0
- package/dist/src/modifications/indexes/index.js +19 -0
- package/dist/src/modifications/indexes/index.js.map +1 -0
- package/dist/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.d.ts +23 -3
- package/dist/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.d.ts.map +1 -1
- package/dist/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.js +68 -65
- package/dist/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.js.map +1 -1
- package/dist/src/modifications/relations/ConvertOneToManyRelationModification.d.ts +23 -2
- package/dist/src/modifications/relations/ConvertOneToManyRelationModification.d.ts.map +1 -1
- package/dist/src/modifications/relations/ConvertOneToManyRelationModification.js +73 -70
- package/dist/src/modifications/relations/ConvertOneToManyRelationModification.js.map +1 -1
- package/dist/src/modifications/relations/CreateRelationInverseSideModification.d.ts +20 -3
- package/dist/src/modifications/relations/CreateRelationInverseSideModification.d.ts.map +1 -1
- package/dist/src/modifications/relations/CreateRelationInverseSideModification.js +36 -33
- package/dist/src/modifications/relations/CreateRelationInverseSideModification.js.map +1 -1
- package/dist/src/modifications/relations/CreateRelationModification.d.ts +25 -3
- package/dist/src/modifications/relations/CreateRelationModification.d.ts.map +1 -1
- package/dist/src/modifications/relations/CreateRelationModification.js +88 -85
- package/dist/src/modifications/relations/CreateRelationModification.js.map +1 -1
- package/dist/src/modifications/relations/DisableOrphanRemovalModification.d.ts +20 -2
- package/dist/src/modifications/relations/DisableOrphanRemovalModification.d.ts.map +1 -1
- package/dist/src/modifications/relations/DisableOrphanRemovalModification.js +42 -39
- package/dist/src/modifications/relations/DisableOrphanRemovalModification.js.map +1 -1
- package/dist/src/modifications/relations/EnableOrphanRemovalModification.d.ts +20 -2
- package/dist/src/modifications/relations/EnableOrphanRemovalModification.d.ts.map +1 -1
- package/dist/src/modifications/relations/EnableOrphanRemovalModification.js +45 -42
- package/dist/src/modifications/relations/EnableOrphanRemovalModification.js.map +1 -1
- package/dist/src/modifications/relations/MakeRelationNotNullModification.d.ts +21 -2
- package/dist/src/modifications/relations/MakeRelationNotNullModification.d.ts.map +1 -1
- package/dist/src/modifications/relations/MakeRelationNotNullModification.js +55 -52
- package/dist/src/modifications/relations/MakeRelationNotNullModification.js.map +1 -1
- package/dist/src/modifications/relations/MakeRelationNullableModification.d.ts +20 -2
- package/dist/src/modifications/relations/MakeRelationNullableModification.d.ts.map +1 -1
- package/dist/src/modifications/relations/MakeRelationNullableModification.js +54 -51
- package/dist/src/modifications/relations/MakeRelationNullableModification.js.map +1 -1
- package/dist/src/modifications/relations/ToggleJunctionEventLogModification.d.ts +27 -0
- package/dist/src/modifications/relations/ToggleJunctionEventLogModification.d.ts.map +1 -0
- package/dist/src/modifications/relations/ToggleJunctionEventLogModification.js +84 -0
- package/dist/src/modifications/relations/ToggleJunctionEventLogModification.js.map +1 -0
- package/dist/src/modifications/relations/UpdateRelationOnDeleteModification.d.ts +20 -3
- package/dist/src/modifications/relations/UpdateRelationOnDeleteModification.d.ts.map +1 -1
- package/dist/src/modifications/relations/UpdateRelationOnDeleteModification.js +42 -39
- package/dist/src/modifications/relations/UpdateRelationOnDeleteModification.js.map +1 -1
- package/dist/src/modifications/relations/UpdateRelationOrderByModification.d.ts +20 -3
- package/dist/src/modifications/relations/UpdateRelationOrderByModification.d.ts.map +1 -1
- package/dist/src/modifications/relations/UpdateRelationOrderByModification.js +43 -40
- package/dist/src/modifications/relations/UpdateRelationOrderByModification.js.map +1 -1
- package/dist/src/modifications/relations/index.d.ts +1 -1
- package/dist/src/modifications/relations/index.d.ts.map +1 -1
- package/dist/src/modifications/relations/index.js +1 -1
- package/dist/src/modifications/relations/index.js.map +1 -1
- package/dist/src/modifications/utils/columnUtils.d.ts +3 -0
- package/dist/src/modifications/utils/columnUtils.d.ts.map +1 -0
- package/dist/src/modifications/utils/columnUtils.js +9 -0
- package/dist/src/modifications/utils/columnUtils.js.map +1 -0
- package/dist/src/modifications/validation/PatchValidationSchemaModification.d.ts +13 -2
- package/dist/src/modifications/validation/PatchValidationSchemaModification.d.ts.map +1 -1
- package/dist/src/modifications/validation/PatchValidationSchemaModification.js +28 -28
- package/dist/src/modifications/validation/PatchValidationSchemaModification.js.map +1 -1
- package/dist/src/modifications/validation/UpdateValidationSchemaModification.d.ts +17 -3
- package/dist/src/modifications/validation/UpdateValidationSchemaModification.d.ts.map +1 -1
- package/dist/src/modifications/validation/UpdateValidationSchemaModification.js +33 -30
- package/dist/src/modifications/validation/UpdateValidationSchemaModification.js.map +1 -1
- package/dist/src/tsconfig.tsbuildinfo +1 -1
- package/dist/src/utils/PartialEntity.d.ts +5 -0
- package/dist/src/utils/PartialEntity.d.ts.map +1 -0
- package/dist/src/utils/PartialEntity.js +3 -0
- package/dist/src/utils/PartialEntity.js.map +1 -0
- package/dist/tests/cases/integration/createAndDropIndex.test.d.ts +2 -0
- package/dist/tests/cases/integration/createAndDropIndex.test.d.ts.map +1 -0
- package/dist/tests/cases/integration/createAndDropIndex.test.js +57 -0
- package/dist/tests/cases/integration/createAndDropIndex.test.js.map +1 -0
- package/dist/tests/cases/integration/createColumn.test.js +36 -0
- package/dist/tests/cases/integration/createColumn.test.js.map +1 -1
- package/dist/tests/cases/integration/createEntity.test.js +2 -0
- package/dist/tests/cases/integration/createEntity.test.js.map +1 -1
- package/dist/tests/cases/integration/createManyHasMany.test.js +1 -0
- package/dist/tests/cases/integration/createManyHasMany.test.js.map +1 -1
- package/dist/tests/cases/integration/createManyHasOne.test.js +1 -0
- package/dist/tests/cases/integration/createManyHasOne.test.js.map +1 -1
- package/dist/tests/cases/integration/createOneHasMany.test.js +1 -0
- package/dist/tests/cases/integration/createOneHasMany.test.js.map +1 -1
- package/dist/tests/cases/integration/createOneHasOne.test.js +2 -0
- package/dist/tests/cases/integration/createOneHasOne.test.js.map +1 -1
- package/dist/tests/cases/integration/createView.test.js +1 -0
- package/dist/tests/cases/integration/createView.test.js.map +1 -1
- package/dist/tests/cases/integration/updateView.test.js +9 -0
- package/dist/tests/cases/integration/updateView.test.js.map +1 -1
- package/dist/tests/tsconfig.tsbuildinfo +1 -1
- package/package.json +7 -7
- package/src/MigrationDescriber.ts +8 -8
- package/src/SchemaDiffer.ts +65 -76
- package/src/SchemaMigrator.ts +1 -1
- package/src/index.ts +1 -5
- package/src/modifications/ModificationHandler.ts +20 -8
- package/src/modifications/ModificationHandlerFactory.ts +65 -61
- package/src/modifications/acl/PatchAclSchemaModification.ts +7 -8
- package/src/modifications/acl/UpdateAclSchemaModification.ts +16 -15
- package/src/modifications/columns/CreateColumnModification.ts +21 -18
- package/src/modifications/columns/UpdateColumnDefinitionModification.ts +44 -42
- package/src/modifications/columns/UpdateColumnNameModification.ts +60 -53
- package/src/modifications/constraints/CreateUniqueConstraintModification.ts +23 -17
- package/src/modifications/constraints/RemoveUniqueConstraintModification.ts +18 -14
- package/src/modifications/differs/ChangeViewNonViewDiffer.ts +2 -2
- package/src/modifications/differs/RemoveChangedFieldDiffer.ts +2 -2
- package/src/modifications/differs/RemoveChangedViewDiffer.ts +2 -2
- package/src/modifications/entities/CreateEntityModification.ts +21 -12
- package/src/modifications/entities/CreateViewModification.ts +13 -11
- package/src/modifications/entities/RemoveEntityModification.ts +22 -15
- package/src/modifications/entities/ToggleEventLogModification.ts +20 -13
- package/src/modifications/entities/UpdateEntityNameModification.ts +9 -9
- package/src/modifications/entities/UpdateEntityTableNameModification.ts +18 -13
- package/src/modifications/entities/UpdateViewModification.ts +7 -7
- package/src/modifications/enums/CreateEnumModification.ts +18 -13
- package/src/modifications/enums/RemoveEnumModification.ts +14 -12
- package/src/modifications/enums/UpdateEnumModification.ts +15 -13
- package/src/modifications/fields/RemoveFieldModification.ts +20 -17
- package/src/modifications/fields/UpdateFieldNameModification.ts +16 -17
- package/src/modifications/index.ts +13 -0
- package/src/modifications/indexes/CreateIndexModification.ts +83 -0
- package/src/modifications/indexes/RemoveIndexModification.ts +68 -0
- package/src/modifications/indexes/index.ts +2 -0
- package/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.ts +35 -25
- package/src/modifications/relations/ConvertOneToManyRelationModification.ts +31 -24
- package/src/modifications/relations/CreateRelationInverseSideModification.ts +15 -13
- package/src/modifications/relations/CreateRelationModification.ts +35 -27
- package/src/modifications/relations/DisableOrphanRemovalModification.ts +15 -12
- package/src/modifications/relations/EnableOrphanRemovalModification.ts +16 -13
- package/src/modifications/relations/MakeRelationNotNullModification.ts +16 -14
- package/src/modifications/relations/MakeRelationNullableModification.ts +17 -13
- package/src/modifications/relations/{ToggleManyHasManyEventLogModification.ts → ToggleJunctionEventLogModification.ts} +21 -14
- package/src/modifications/relations/UpdateRelationOnDeleteModification.ts +16 -14
- package/src/modifications/relations/UpdateRelationOrderByModification.ts +17 -14
- package/src/modifications/relations/index.ts +1 -1
- package/src/modifications/utils/columnUtils.ts +5 -0
- package/src/modifications/validation/PatchValidationSchemaModification.ts +7 -7
- package/src/modifications/validation/UpdateValidationSchemaModification.ts +17 -14
- package/src/utils/PartialEntity.ts +5 -0
- package/tests/cases/integration/createAndDropIndex.test.ts +44 -0
- package/tests/cases/integration/createColumn.test.ts +33 -0
- package/tests/cases/integration/createEntity.test.ts +2 -0
- package/tests/cases/integration/createManyHasMany.test.ts +1 -0
- package/tests/cases/integration/createManyHasOne.test.ts +1 -0
- package/tests/cases/integration/createOneHasMany.test.ts +1 -0
- package/tests/cases/integration/createOneHasOne.test.ts +2 -0
- package/tests/cases/integration/createView.test.ts +1 -0
- package/tests/cases/integration/updateView.test.ts +9 -0
- package/dist/src/modifications/relations/ToggleManyHasManyEventLogModification.d.ts +0 -8
- package/dist/src/modifications/relations/ToggleManyHasManyEventLogModification.d.ts.map +0 -1
- package/dist/src/modifications/relations/ToggleManyHasManyEventLogModification.js +0 -81
- package/dist/src/modifications/relations/ToggleManyHasManyEventLogModification.js.map +0 -1
|
@@ -11,14 +11,17 @@ import {
|
|
|
11
11
|
updateModel,
|
|
12
12
|
updateSchema,
|
|
13
13
|
} from '../utils/schemaUpdateUtils'
|
|
14
|
-
import {
|
|
14
|
+
import {
|
|
15
|
+
createModificationType,
|
|
16
|
+
Differ,
|
|
17
|
+
ModificationHandler,
|
|
18
|
+
ModificationHandlerOptions,
|
|
19
|
+
} from '../ModificationHandler'
|
|
15
20
|
import { VERSION_ACL_PATCH, VERSION_REMOVE_REFERENCING_RELATIONS } from '../ModificationVersions'
|
|
16
21
|
import { isRelation, PredicateDefinitionProcessor } from '@contember/schema-utils'
|
|
17
|
-
import {
|
|
18
|
-
|
|
19
|
-
export const RemoveEntityModification: ModificationHandlerStatic<RemoveEntityModificationData> = class {
|
|
20
|
-
static id = 'removeEntity'
|
|
22
|
+
import { removeFieldModification } from '../fields'
|
|
21
23
|
|
|
24
|
+
export class RemoveEntityModificationHandler implements ModificationHandler<RemoveEntityModificationData> {
|
|
22
25
|
constructor(
|
|
23
26
|
private readonly data: RemoveEntityModificationData,
|
|
24
27
|
private readonly schema: Schema,
|
|
@@ -33,7 +36,7 @@ export const RemoveEntityModification: ModificationHandlerStatic<RemoveEntityMod
|
|
|
33
36
|
}
|
|
34
37
|
if (this.options.formatVersion >= VERSION_REMOVE_REFERENCING_RELATIONS) {
|
|
35
38
|
this.getFieldsToRemove(this.schema).forEach(([entityName, fieldName]) => {
|
|
36
|
-
(
|
|
39
|
+
removeFieldModification.createHandler({ entityName, fieldName }, this.schema, this.options).createSql(builder)
|
|
37
40
|
})
|
|
38
41
|
}
|
|
39
42
|
builder.dropTable(entity.tableName)
|
|
@@ -104,17 +107,21 @@ export const RemoveEntityModification: ModificationHandlerStatic<RemoveEntityMod
|
|
|
104
107
|
return { message: `Remove entity ${this.data.entityName}`, isDestructive: true }
|
|
105
108
|
}
|
|
106
109
|
|
|
107
|
-
static createModification(data: RemoveEntityModificationData) {
|
|
108
|
-
return { modification: this.id, ...data }
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
static createDiff(originalSchema: Schema, updatedSchema: Schema) {
|
|
112
|
-
return Object.keys(originalSchema.model.entities)
|
|
113
|
-
.filter(name => !updatedSchema.model.entities[name])
|
|
114
|
-
.map(entityName => RemoveEntityModification.createModification({ entityName }))
|
|
115
|
-
}
|
|
116
110
|
}
|
|
117
111
|
|
|
118
112
|
export interface RemoveEntityModificationData {
|
|
119
113
|
entityName: string
|
|
120
114
|
}
|
|
115
|
+
|
|
116
|
+
export const removeEntityModification = createModificationType({
|
|
117
|
+
id: 'removeEntity',
|
|
118
|
+
handler: RemoveEntityModificationHandler,
|
|
119
|
+
})
|
|
120
|
+
|
|
121
|
+
export class RemoveEntityDiffer implements Differ {
|
|
122
|
+
createDiff(originalSchema: Schema, updatedSchema: Schema) {
|
|
123
|
+
return Object.keys(originalSchema.model.entities)
|
|
124
|
+
.filter(name => !updatedSchema.model.entities[name])
|
|
125
|
+
.map(entityName => removeEntityModification.createModification({ entityName }))
|
|
126
|
+
}
|
|
127
|
+
}
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
import { MigrationBuilder } from '@contember/database-migrations'
|
|
2
2
|
import { Schema } from '@contember/schema'
|
|
3
3
|
import { SchemaUpdater, updateEntity, updateModel } from '../utils/schemaUpdateUtils'
|
|
4
|
-
import {
|
|
4
|
+
import {
|
|
5
|
+
createModificationType,
|
|
6
|
+
Differ,
|
|
7
|
+
ModificationHandler,
|
|
8
|
+
ModificationHandlerOptions,
|
|
9
|
+
} from '../ModificationHandler'
|
|
5
10
|
import {
|
|
6
11
|
createEventTrigger,
|
|
7
12
|
createEventTrxTrigger,
|
|
@@ -9,8 +14,7 @@ import {
|
|
|
9
14
|
dropEventTrxTrigger,
|
|
10
15
|
} from '../utils/sqlUpdateUtils'
|
|
11
16
|
|
|
12
|
-
export
|
|
13
|
-
static id = 'toggleEventLog'
|
|
17
|
+
export class ToggleEventLogModificationHandler implements ModificationHandler<ToggleEventLogModificationData> {
|
|
14
18
|
|
|
15
19
|
constructor(
|
|
16
20
|
private readonly data: ToggleEventLogModificationData,
|
|
@@ -51,12 +55,20 @@ export const ToggleEventLogModification: ModificationHandlerStatic<ToggleEventLo
|
|
|
51
55
|
message: `${this.data.enabled ? 'Enable' : 'Disable'} event log for ${this.data.entityName}`,
|
|
52
56
|
}
|
|
53
57
|
}
|
|
58
|
+
}
|
|
54
59
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
60
|
+
export interface ToggleEventLogModificationData {
|
|
61
|
+
entityName: string
|
|
62
|
+
enabled: boolean
|
|
63
|
+
}
|
|
58
64
|
|
|
59
|
-
|
|
65
|
+
export const toggleEventLogModification = createModificationType({
|
|
66
|
+
id: 'toggleEventLog',
|
|
67
|
+
handler: ToggleEventLogModificationHandler,
|
|
68
|
+
})
|
|
69
|
+
|
|
70
|
+
export class ToggleEventLogDiffer implements Differ {
|
|
71
|
+
createDiff(originalSchema: Schema, updatedSchema: Schema) {
|
|
60
72
|
return Object.values(updatedSchema.model.entities)
|
|
61
73
|
.flatMap(updatedEntity => {
|
|
62
74
|
const origEntity = originalSchema.model.entities[updatedEntity.name]
|
|
@@ -66,7 +78,7 @@ export const ToggleEventLogModification: ModificationHandlerStatic<ToggleEventLo
|
|
|
66
78
|
const newValue = updatedEntity.eventLog.enabled
|
|
67
79
|
const oldValue = origEntity.eventLog.enabled
|
|
68
80
|
if (newValue !== oldValue) {
|
|
69
|
-
return [
|
|
81
|
+
return [toggleEventLogModification.createModification({
|
|
70
82
|
entityName: updatedEntity.name,
|
|
71
83
|
enabled: newValue,
|
|
72
84
|
})]
|
|
@@ -76,8 +88,3 @@ export const ToggleEventLogModification: ModificationHandlerStatic<ToggleEventLo
|
|
|
76
88
|
|
|
77
89
|
}
|
|
78
90
|
}
|
|
79
|
-
|
|
80
|
-
export interface ToggleEventLogModificationData {
|
|
81
|
-
entityName: string
|
|
82
|
-
enabled: boolean
|
|
83
|
-
}
|
|
@@ -11,17 +11,16 @@ import {
|
|
|
11
11
|
updateModel,
|
|
12
12
|
updateSchema,
|
|
13
13
|
} from '../utils/schemaUpdateUtils'
|
|
14
|
-
import { ModificationHandler, ModificationHandlerOptions
|
|
14
|
+
import { createModificationType, ModificationHandler, ModificationHandlerOptions } from '../ModificationHandler'
|
|
15
15
|
import { isIt } from '../../utils/isIt'
|
|
16
16
|
import { VERSION_ACL_PATCH, VERSION_UPDATE_CONSTRAINT_NAME } from '../ModificationVersions'
|
|
17
17
|
import { NamingHelper } from '@contember/schema-utils'
|
|
18
|
-
import { UpdateEntityTableNameModification } from './UpdateEntityTableNameModification'
|
|
19
18
|
import { NoopModification } from '../NoopModification'
|
|
20
19
|
import { renameConstraintSchemaUpdater, renameConstraintsSqlBuilder } from '../utils/renameConstraintsHelper'
|
|
21
20
|
import { changeValue } from '../utils/valueUtils'
|
|
21
|
+
import { updateEntityTableNameModification } from './UpdateEntityTableNameModification'
|
|
22
22
|
|
|
23
|
-
export
|
|
24
|
-
static id = 'updateEntityName'
|
|
23
|
+
export class UpdateEntityNameModificationHandler implements ModificationHandler<UpdateEntityNameModificationData> {
|
|
25
24
|
private subModification: ModificationHandler<any>
|
|
26
25
|
|
|
27
26
|
constructor(
|
|
@@ -30,7 +29,7 @@ export const UpdateEntityNameModification: ModificationHandlerStatic<UpdateEntit
|
|
|
30
29
|
private readonly options: ModificationHandlerOptions,
|
|
31
30
|
) {
|
|
32
31
|
this.subModification = data.tableName
|
|
33
|
-
?
|
|
32
|
+
? updateEntityTableNameModification.createHandler(
|
|
34
33
|
{ entityName: data.entityName, tableName: data.tableName },
|
|
35
34
|
schema,
|
|
36
35
|
this.options,
|
|
@@ -124,10 +123,6 @@ export const UpdateEntityNameModification: ModificationHandlerStatic<UpdateEntit
|
|
|
124
123
|
describe() {
|
|
125
124
|
return { message: `Change entity name from ${this.data.entityName} to ${this.data.newEntityName}` }
|
|
126
125
|
}
|
|
127
|
-
|
|
128
|
-
static createModification(data: UpdateEntityNameModificationData) {
|
|
129
|
-
return { modification: this.id, ...data }
|
|
130
|
-
}
|
|
131
126
|
}
|
|
132
127
|
|
|
133
128
|
export interface UpdateEntityNameModificationData {
|
|
@@ -135,3 +130,8 @@ export interface UpdateEntityNameModificationData {
|
|
|
135
130
|
newEntityName: string
|
|
136
131
|
tableName?: string
|
|
137
132
|
}
|
|
133
|
+
|
|
134
|
+
export const updateEntityNameModification = createModificationType({
|
|
135
|
+
id: 'updateEntityName',
|
|
136
|
+
handler: UpdateEntityNameModificationHandler,
|
|
137
|
+
})
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { MigrationBuilder } from '@contember/database-migrations'
|
|
2
2
|
import { Schema } from '@contember/schema'
|
|
3
3
|
import { SchemaUpdater, updateEntity, updateModel } from '../utils/schemaUpdateUtils'
|
|
4
|
-
import {
|
|
4
|
+
import { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'
|
|
5
5
|
|
|
6
|
-
export
|
|
7
|
-
static id = 'updateEntityTableName'
|
|
6
|
+
export class UpdateEntityTableNameModificationHandler implements ModificationHandler<UpdateEntityTableNameModificationData> {
|
|
8
7
|
constructor(private readonly data: UpdateEntityTableNameModificationData, private readonly schema: Schema) {}
|
|
9
8
|
|
|
10
9
|
public createSql(builder: MigrationBuilder): void {
|
|
@@ -28,22 +27,28 @@ export const UpdateEntityTableNameModification: ModificationHandlerStatic<Update
|
|
|
28
27
|
describe() {
|
|
29
28
|
return { message: `Change table name of entity ${this.data.entityName}` }
|
|
30
29
|
}
|
|
30
|
+
}
|
|
31
31
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
32
|
+
export interface UpdateEntityTableNameModificationData {
|
|
33
|
+
entityName: string
|
|
34
|
+
tableName: string
|
|
35
|
+
}
|
|
35
36
|
|
|
36
|
-
|
|
37
|
+
export const updateEntityTableNameModification = createModificationType({
|
|
38
|
+
id: 'updateEntityTableName',
|
|
39
|
+
handler: UpdateEntityTableNameModificationHandler,
|
|
40
|
+
})
|
|
41
|
+
|
|
42
|
+
export class UpdateEntityTableNameDiffer implements Differ {
|
|
43
|
+
createDiff(originalSchema: Schema, updatedSchema: Schema) {
|
|
37
44
|
return Object.values(updatedSchema.model.entities)
|
|
38
45
|
.filter(
|
|
39
46
|
it =>
|
|
40
47
|
originalSchema.model.entities[it.name] && originalSchema.model.entities[it.name].tableName !== it.tableName,
|
|
41
48
|
)
|
|
42
|
-
.map(it =>
|
|
49
|
+
.map(it => updateEntityTableNameModification.createModification({
|
|
50
|
+
entityName: it.name,
|
|
51
|
+
tableName: it.tableName,
|
|
52
|
+
}))
|
|
43
53
|
}
|
|
44
54
|
}
|
|
45
|
-
|
|
46
|
-
export interface UpdateEntityTableNameModificationData {
|
|
47
|
-
entityName: string
|
|
48
|
-
tableName: string
|
|
49
|
-
}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import { MigrationBuilder } from '@contember/database-migrations'
|
|
2
2
|
import { Model, Schema } from '@contember/schema'
|
|
3
|
-
import {
|
|
3
|
+
import { createModificationType, ModificationHandler } from '../ModificationHandler'
|
|
4
4
|
import { SchemaUpdater, updateEntity, updateModel } from '../utils/schemaUpdateUtils'
|
|
5
5
|
|
|
6
|
-
export
|
|
7
|
-
static id = 'updateView'
|
|
8
|
-
|
|
6
|
+
export class UpdateViewModificationHandler implements ModificationHandler<UpdateViewModificationData> {
|
|
9
7
|
constructor(private readonly data: UpdateViewModificationData, private readonly schema: Schema) {}
|
|
10
8
|
|
|
11
9
|
public createSql(builder: MigrationBuilder): void {
|
|
@@ -32,12 +30,14 @@ export const UpdateViewModification: ModificationHandlerStatic<UpdateViewModific
|
|
|
32
30
|
return { message: `Update SQL definition of a view` }
|
|
33
31
|
}
|
|
34
32
|
|
|
35
|
-
static createModification(data: UpdateViewModificationData) {
|
|
36
|
-
return { modification: this.id, ...data }
|
|
37
|
-
}
|
|
38
33
|
}
|
|
39
34
|
|
|
40
35
|
export interface UpdateViewModificationData {
|
|
41
36
|
entityName: string
|
|
42
37
|
view: Model.View
|
|
43
38
|
}
|
|
39
|
+
|
|
40
|
+
export const updateViewModification = createModificationType({
|
|
41
|
+
id: 'updateView',
|
|
42
|
+
handler: UpdateViewModificationHandler,
|
|
43
|
+
})
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { MigrationBuilder } from '@contember/database-migrations'
|
|
2
2
|
import { Schema } from '@contember/schema'
|
|
3
3
|
import { SchemaUpdater, updateModel } from '../utils/schemaUpdateUtils'
|
|
4
|
-
import {
|
|
4
|
+
import { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'
|
|
5
5
|
import { createCheck, getConstraintName } from './enumUtils'
|
|
6
6
|
|
|
7
|
-
export
|
|
8
|
-
static id = 'createEnum'
|
|
7
|
+
export class CreateEnumModificationHandler implements ModificationHandler<CreateEnumModificationData> {
|
|
9
8
|
constructor(private readonly data: CreateEnumModificationData, private readonly schema: Schema) {}
|
|
10
9
|
|
|
11
10
|
public createSql(builder: MigrationBuilder): void {
|
|
@@ -28,19 +27,25 @@ export const CreateEnumModification: ModificationHandlerStatic<CreateEnumModific
|
|
|
28
27
|
describe() {
|
|
29
28
|
return { message: `Add enum ${this.data.enumName}` }
|
|
30
29
|
}
|
|
31
|
-
|
|
32
|
-
static createModification(data: CreateEnumModificationData) {
|
|
33
|
-
return { modification: this.id, ...data }
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
static createDiff(originalSchema: Schema, updatedSchema: Schema) {
|
|
37
|
-
return Object.entries(updatedSchema.model.enums)
|
|
38
|
-
.filter(([name]) => !originalSchema.model.enums[name])
|
|
39
|
-
.map(([enumName, values]) => CreateEnumModification.createModification({ enumName, values }))
|
|
40
|
-
}
|
|
41
30
|
}
|
|
42
31
|
|
|
43
32
|
export interface CreateEnumModificationData {
|
|
44
33
|
enumName: string
|
|
45
34
|
values: readonly string[]
|
|
46
35
|
}
|
|
36
|
+
|
|
37
|
+
export const createEnumModification = createModificationType({
|
|
38
|
+
id: 'createEnum',
|
|
39
|
+
handler: CreateEnumModificationHandler,
|
|
40
|
+
})
|
|
41
|
+
|
|
42
|
+
export class CreateEnumDiffer implements Differ {
|
|
43
|
+
createDiff(originalSchema: Schema, updatedSchema: Schema) {
|
|
44
|
+
return Object.entries(updatedSchema.model.enums)
|
|
45
|
+
.filter(([name]) => !originalSchema.model.enums[name])
|
|
46
|
+
.map(([enumName, values]) => createEnumModification.createModification({
|
|
47
|
+
enumName,
|
|
48
|
+
values,
|
|
49
|
+
}))
|
|
50
|
+
}
|
|
51
|
+
}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { MigrationBuilder } from '@contember/database-migrations'
|
|
2
2
|
import { Schema } from '@contember/schema'
|
|
3
3
|
import { SchemaUpdater, updateModel } from '../utils/schemaUpdateUtils'
|
|
4
|
-
import {
|
|
4
|
+
import { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'
|
|
5
5
|
|
|
6
|
-
export
|
|
7
|
-
static id = 'removeEnum'
|
|
6
|
+
export class RemoveEnumModificationHandler implements ModificationHandler<RemoveEnumModificationData> {
|
|
8
7
|
constructor(private readonly data: RemoveEnumModificationData, private readonly schema: Schema) {}
|
|
9
8
|
|
|
10
9
|
public createSql(builder: MigrationBuilder): void {
|
|
@@ -24,18 +23,21 @@ export const RemoveEnumModification: ModificationHandlerStatic<RemoveEnumModific
|
|
|
24
23
|
describe() {
|
|
25
24
|
return { message: `Remove ${this.data.enumName}` }
|
|
26
25
|
}
|
|
26
|
+
}
|
|
27
27
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
export interface RemoveEnumModificationData {
|
|
29
|
+
enumName: string
|
|
30
|
+
}
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
export const removeEnumModification = createModificationType({
|
|
33
|
+
id: 'removeEnum',
|
|
34
|
+
handler: RemoveEnumModificationHandler,
|
|
35
|
+
})
|
|
36
|
+
|
|
37
|
+
export class RemoveEnumDiffer implements Differ {
|
|
38
|
+
createDiff(originalSchema: Schema, updatedSchema: Schema) {
|
|
33
39
|
return Object.entries(originalSchema.model.enums)
|
|
34
40
|
.filter(([name]) => !updatedSchema.model.enums[name])
|
|
35
|
-
.map(([enumName, values]) =>
|
|
41
|
+
.map(([enumName, values]) => removeEnumModification.createModification({ enumName }))
|
|
36
42
|
}
|
|
37
43
|
}
|
|
38
|
-
|
|
39
|
-
export interface RemoveEnumModificationData {
|
|
40
|
-
enumName: string
|
|
41
|
-
}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { MigrationBuilder } from '@contember/database-migrations'
|
|
2
2
|
import { Schema } from '@contember/schema'
|
|
3
3
|
import { SchemaUpdater, updateModel } from '../utils/schemaUpdateUtils'
|
|
4
|
-
import {
|
|
4
|
+
import { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'
|
|
5
5
|
import deepEqual from 'fast-deep-equal'
|
|
6
6
|
import { createCheck, getConstraintName } from './enumUtils'
|
|
7
7
|
|
|
8
|
-
export
|
|
9
|
-
static id = 'updateEnum'
|
|
8
|
+
export class UpdateEnumModificationHandler implements ModificationHandler<UpdateEnumModificationData> {
|
|
10
9
|
constructor(private readonly data: UpdateEnumModificationData, private readonly schema: Schema) {}
|
|
11
10
|
|
|
12
11
|
public createSql(builder: MigrationBuilder): void {
|
|
@@ -37,23 +36,26 @@ export const UpdateEnumModification: ModificationHandlerStatic<UpdateEnumModific
|
|
|
37
36
|
: undefined
|
|
38
37
|
return { message: `Update enum ${this.data.enumName}`, failureWarning }
|
|
39
38
|
}
|
|
39
|
+
}
|
|
40
40
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
41
|
+
export interface UpdateEnumModificationData {
|
|
42
|
+
enumName: string
|
|
43
|
+
values: readonly string[]
|
|
44
|
+
}
|
|
44
45
|
|
|
45
|
-
|
|
46
|
+
export const updateEnumModification = createModificationType({
|
|
47
|
+
id: 'updateEnum',
|
|
48
|
+
handler: UpdateEnumModificationHandler,
|
|
49
|
+
})
|
|
50
|
+
|
|
51
|
+
export class UpdateEnumDiffer implements Differ {
|
|
52
|
+
createDiff(originalSchema: Schema, updatedSchema: Schema) {
|
|
46
53
|
return Object.entries(updatedSchema.model.enums)
|
|
47
54
|
.filter(
|
|
48
55
|
([name]) =>
|
|
49
56
|
originalSchema.model.enums[name] &&
|
|
50
57
|
!deepEqual(updatedSchema.model.enums[name], originalSchema.model.enums[name]),
|
|
51
58
|
)
|
|
52
|
-
.map(([enumName, values]) =>
|
|
59
|
+
.map(([enumName, values]) => updateEnumModification.createModification({ enumName, values }))
|
|
53
60
|
}
|
|
54
61
|
}
|
|
55
|
-
|
|
56
|
-
export interface UpdateEnumModificationData {
|
|
57
|
-
enumName: string
|
|
58
|
-
values: readonly string[]
|
|
59
|
-
}
|
|
@@ -2,11 +2,10 @@ import { acceptFieldVisitor, isInverseRelation, isRelation, NamingHelper } from
|
|
|
2
2
|
import { MigrationBuilder } from '@contember/database-migrations'
|
|
3
3
|
import { Schema } from '@contember/schema'
|
|
4
4
|
import { removeField, SchemaUpdater } from '../utils/schemaUpdateUtils'
|
|
5
|
-
import {
|
|
5
|
+
import { createModificationType, Differ, ModificationHandler, ModificationHandlerOptions } from '../ModificationHandler'
|
|
6
6
|
import { isDefined } from '../../utils/isDefined'
|
|
7
7
|
|
|
8
|
-
export
|
|
9
|
-
static id = 'removeField'
|
|
8
|
+
export class RemoveFieldModificationHandler implements ModificationHandler<RemoveFieldModificationData> {
|
|
10
9
|
|
|
11
10
|
constructor(
|
|
12
11
|
private readonly data: RemoveFieldModificationData,
|
|
@@ -20,19 +19,19 @@ export const RemoveFieldModification: ModificationHandlerStatic<RemoveFieldModif
|
|
|
20
19
|
return
|
|
21
20
|
}
|
|
22
21
|
acceptFieldVisitor(this.schema.model, this.data.entityName, this.data.fieldName, {
|
|
23
|
-
visitColumn: (entity, column) => {
|
|
22
|
+
visitColumn: ({ entity, column }) => {
|
|
24
23
|
builder.dropColumn(entity.tableName, column.columnName)
|
|
25
24
|
},
|
|
26
|
-
visitManyHasOne: (entity, relation
|
|
25
|
+
visitManyHasOne: ({ entity, relation }) => {
|
|
27
26
|
builder.dropColumn(entity.tableName, relation.joiningColumn.columnName)
|
|
28
27
|
},
|
|
29
28
|
visitOneHasMany: () => {},
|
|
30
|
-
visitOneHasOneOwning: (entity, relation
|
|
29
|
+
visitOneHasOneOwning: ({ entity, relation }) => {
|
|
31
30
|
builder.dropConstraint(entity.tableName, NamingHelper.createUniqueConstraintName(entity.name, [relation.name]))
|
|
32
31
|
builder.dropColumn(entity.tableName, relation.joiningColumn.columnName)
|
|
33
32
|
},
|
|
34
33
|
visitOneHasOneInverse: () => {},
|
|
35
|
-
visitManyHasManyOwning: ({
|
|
34
|
+
visitManyHasManyOwning: ({ relation }) => {
|
|
36
35
|
builder.dropTable(relation.joiningTable.tableName)
|
|
37
36
|
},
|
|
38
37
|
visitManyHasManyInverse: () => {},
|
|
@@ -47,11 +46,20 @@ export const RemoveFieldModification: ModificationHandlerStatic<RemoveFieldModif
|
|
|
47
46
|
return { message: `Remove field ${this.data.entityName}.${this.data.fieldName}`, isDestructive: true }
|
|
48
47
|
}
|
|
49
48
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export interface RemoveFieldModificationData {
|
|
52
|
+
entityName: string
|
|
53
|
+
fieldName: string
|
|
54
|
+
}
|
|
53
55
|
|
|
54
|
-
|
|
56
|
+
export const removeFieldModification = createModificationType({
|
|
57
|
+
id: 'removeField',
|
|
58
|
+
handler: RemoveFieldModificationHandler,
|
|
59
|
+
})
|
|
60
|
+
|
|
61
|
+
export class RemoveFieldDiffer implements Differ {
|
|
62
|
+
createDiff(originalSchema: Schema, updatedSchema: Schema) {
|
|
55
63
|
return Object.values(updatedSchema.model.entities)
|
|
56
64
|
.filter(({ name }) => originalSchema.model.entities[name])
|
|
57
65
|
.flatMap(entity => {
|
|
@@ -66,7 +74,7 @@ export const RemoveFieldModification: ModificationHandlerStatic<RemoveFieldModif
|
|
|
66
74
|
return undefined
|
|
67
75
|
}
|
|
68
76
|
}
|
|
69
|
-
return
|
|
77
|
+
return removeFieldModification.createModification({
|
|
70
78
|
entityName: entity.name,
|
|
71
79
|
fieldName: field.name,
|
|
72
80
|
})
|
|
@@ -75,8 +83,3 @@ export const RemoveFieldModification: ModificationHandlerStatic<RemoveFieldModif
|
|
|
75
83
|
})
|
|
76
84
|
}
|
|
77
85
|
}
|
|
78
|
-
|
|
79
|
-
export interface RemoveFieldModificationData {
|
|
80
|
-
entityName: string
|
|
81
|
-
fieldName: string
|
|
82
|
-
}
|
|
@@ -13,17 +13,15 @@ import {
|
|
|
13
13
|
updateModel,
|
|
14
14
|
updateSchema,
|
|
15
15
|
} from '../utils/schemaUpdateUtils'
|
|
16
|
-
import { ModificationHandler, ModificationHandlerOptions
|
|
16
|
+
import { createModificationType, ModificationHandler, ModificationHandlerOptions } from '../ModificationHandler'
|
|
17
17
|
import { acceptFieldVisitor, NamingHelper, PredicateDefinitionProcessor } from '@contember/schema-utils'
|
|
18
18
|
import { VERSION_ACL_PATCH, VERSION_UPDATE_CONSTRAINT_NAME } from '../ModificationVersions'
|
|
19
19
|
import { renameConstraintSchemaUpdater, renameConstraintsSqlBuilder } from '../utils/renameConstraintsHelper'
|
|
20
20
|
import { changeValue } from '../utils/valueUtils'
|
|
21
|
-
import {
|
|
21
|
+
import { updateColumnNameModification } from '../columns'
|
|
22
22
|
import { NoopModification } from '../NoopModification'
|
|
23
23
|
|
|
24
|
-
export
|
|
25
|
-
static id = 'updateFieldName'
|
|
26
|
-
|
|
24
|
+
export class UpdateFieldNameModificationHandler implements ModificationHandler<UpdateFieldNameModificationData> {
|
|
27
25
|
private renameColumnSubModification: ModificationHandler<any> = new NoopModification()
|
|
28
26
|
|
|
29
27
|
constructor(
|
|
@@ -32,7 +30,7 @@ export const UpdateFieldNameModification: ModificationHandlerStatic<UpdateFieldN
|
|
|
32
30
|
private readonly options: ModificationHandlerOptions,
|
|
33
31
|
) {
|
|
34
32
|
if (this.data.columnName) {
|
|
35
|
-
this.renameColumnSubModification =
|
|
33
|
+
this.renameColumnSubModification = updateColumnNameModification.createHandler({
|
|
36
34
|
entityName: this.data.entityName,
|
|
37
35
|
columnName: this.data.columnName,
|
|
38
36
|
fieldName: this.data.fieldName,
|
|
@@ -81,33 +79,33 @@ export const UpdateFieldNameModification: ModificationHandlerStatic<UpdateFieldN
|
|
|
81
79
|
}
|
|
82
80
|
|
|
83
81
|
return acceptFieldVisitor<Model.AnyField>(this.schema.model, entity, field, {
|
|
84
|
-
visitColumn: (
|
|
85
|
-
visitManyHasOne: (
|
|
82
|
+
visitColumn: ({ column }) => column,
|
|
83
|
+
visitManyHasOne: ({ targetEntity, relation, targetRelation }) => {
|
|
86
84
|
return isUpdatedRelation(targetEntity, targetRelation)
|
|
87
85
|
? { ...relation, inversedBy: this.data.newFieldName }
|
|
88
86
|
: relation
|
|
89
87
|
},
|
|
90
|
-
visitOneHasMany: (
|
|
88
|
+
visitOneHasMany: ({ relation, targetEntity, targetRelation }) => {
|
|
91
89
|
return isUpdatedRelation(targetEntity, targetRelation)
|
|
92
90
|
? { ...relation, ownedBy: this.data.newFieldName }
|
|
93
91
|
: relation
|
|
94
92
|
},
|
|
95
|
-
visitOneHasOneOwning: (
|
|
93
|
+
visitOneHasOneOwning: ({ relation, targetEntity, targetRelation }) => {
|
|
96
94
|
return isUpdatedRelation(targetEntity, targetRelation)
|
|
97
95
|
? { ...relation, inversedBy: this.data.newFieldName }
|
|
98
96
|
: relation
|
|
99
97
|
},
|
|
100
|
-
visitOneHasOneInverse: (
|
|
98
|
+
visitOneHasOneInverse: ({ relation, targetEntity, targetRelation }) => {
|
|
101
99
|
return isUpdatedRelation(targetEntity, targetRelation)
|
|
102
100
|
? { ...relation, ownedBy: this.data.newFieldName }
|
|
103
101
|
: relation
|
|
104
102
|
},
|
|
105
|
-
visitManyHasManyOwning: (
|
|
103
|
+
visitManyHasManyOwning: ({ relation, targetEntity, targetRelation }) => {
|
|
106
104
|
return isUpdatedRelation(targetEntity, targetRelation)
|
|
107
105
|
? { ...relation, inversedBy: this.data.newFieldName }
|
|
108
106
|
: relation
|
|
109
107
|
},
|
|
110
|
-
visitManyHasManyInverse: (
|
|
108
|
+
visitManyHasManyInverse: ({ relation, targetEntity, targetRelation }) => {
|
|
111
109
|
return isUpdatedRelation(targetEntity, targetRelation)
|
|
112
110
|
? { ...relation, ownedBy: this.data.newFieldName }
|
|
113
111
|
: relation
|
|
@@ -192,10 +190,6 @@ export const UpdateFieldNameModification: ModificationHandlerStatic<UpdateFieldN
|
|
|
192
190
|
describe() {
|
|
193
191
|
return { message: `Change field name ${this.data.entityName}.${this.data.fieldName} to ${this.data.newFieldName}` }
|
|
194
192
|
}
|
|
195
|
-
|
|
196
|
-
static createModification(data: UpdateFieldNameModificationData) {
|
|
197
|
-
return { modification: this.id, ...data }
|
|
198
|
-
}
|
|
199
193
|
}
|
|
200
194
|
|
|
201
195
|
export interface UpdateFieldNameModificationData {
|
|
@@ -204,3 +198,8 @@ export interface UpdateFieldNameModificationData {
|
|
|
204
198
|
newFieldName: string
|
|
205
199
|
columnName?: string
|
|
206
200
|
}
|
|
201
|
+
|
|
202
|
+
export const updateFieldNameModification = createModificationType({
|
|
203
|
+
id: 'updateFieldName',
|
|
204
|
+
handler: UpdateFieldNameModificationHandler,
|
|
205
|
+
})
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export * from './acl'
|
|
2
|
+
export * from './columns'
|
|
3
|
+
export * from './constraints'
|
|
4
|
+
export * from './entities'
|
|
5
|
+
export * from './enums'
|
|
6
|
+
export * from './fields'
|
|
7
|
+
export * from './relations'
|
|
8
|
+
export * from './validation'
|
|
9
|
+
export * from './ModificationHandlerFactory'
|
|
10
|
+
export * from './ModificationVersions'
|
|
11
|
+
export * from './ModificationHandler'
|
|
12
|
+
export { SchemaUpdateError } from './exceptions'
|
|
13
|
+
export * from './utils/sqlUpdateUtils'
|