@contember/schema-migrations 1.1.2 → 1.2.0-alpha.11
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 +70 -67
- 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 +73 -70
- 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 +65 -61
- 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/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/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 +18 -16
- package/src/modifications/columns/UpdateColumnDefinitionModification.ts +27 -25
- 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 +19 -11
- 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/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/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
package/src/SchemaDiffer.ts
CHANGED
|
@@ -10,40 +10,39 @@ import {
|
|
|
10
10
|
import { SchemaMigrator } from './SchemaMigrator'
|
|
11
11
|
import { Migration } from './Migration'
|
|
12
12
|
import { ImplementationException } from './exceptions'
|
|
13
|
-
import { VERSION_LATEST } from './modifications/ModificationVersions'
|
|
14
|
-
import { CreateUniqueConstraintModification, RemoveUniqueConstraintModification } from './modifications/constraints'
|
|
15
|
-
import { RemoveFieldModification } from './modifications/fields'
|
|
16
13
|
import {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
14
|
+
ConvertOneHasManyToManyHasManyRelationDiffer,
|
|
15
|
+
ConvertOneToManyRelationDiffer,
|
|
16
|
+
CreateColumnDiffer,
|
|
17
|
+
CreateEntityDiffer,
|
|
18
|
+
CreateEnumDiffer,
|
|
19
|
+
CreateRelationDiffer,
|
|
20
|
+
CreateRelationInverseSideDiffer,
|
|
21
|
+
CreateUniqueConstraintDiffer,
|
|
22
|
+
CreateViewDiffer,
|
|
23
|
+
Differ,
|
|
24
|
+
DisableOrphanRemovalDiffer,
|
|
25
|
+
EnableOrphanRemovalDiffer,
|
|
26
|
+
MakeRelationNotNullDiffer,
|
|
27
|
+
MakeRelationNullableDiffer,
|
|
28
|
+
RemoveEntityDiffer,
|
|
29
|
+
RemoveEnumDiffer,
|
|
30
|
+
RemoveFieldDiffer,
|
|
31
|
+
RemoveUniqueConstraintDiffer,
|
|
32
|
+
ToggleEventLogDiffer,
|
|
33
|
+
ToggleJunctionEventLogDiffer,
|
|
34
|
+
UpdateAclSchemaDiffer,
|
|
35
|
+
UpdateColumnDefinitionDiffer,
|
|
36
|
+
UpdateColumnNameDiffer,
|
|
37
|
+
UpdateEntityTableNameDiffer,
|
|
38
|
+
UpdateEnumDiffer,
|
|
39
|
+
UpdateRelationOnDeleteDiffer,
|
|
40
|
+
UpdateRelationOrderByDiffer,
|
|
41
|
+
UpdateValidationSchemaDiffer,
|
|
42
|
+
VERSION_LATEST,
|
|
43
|
+
} from './modifications'
|
|
46
44
|
import { ChangeViewNonViewDiffer, RemoveChangedFieldDiffer, RemoveChangedViewDiffer } from './modifications/differs'
|
|
45
|
+
import { CreateIndexDiffer, RemoveIndexDiffer } from './modifications/indexes'
|
|
47
46
|
|
|
48
47
|
export class SchemaDiffer {
|
|
49
48
|
constructor(private readonly schemaMigrator: SchemaMigrator) {}
|
|
@@ -58,56 +57,46 @@ export class SchemaDiffer {
|
|
|
58
57
|
throw new InvalidSchemaException('updated schema is not valid', updatedErrors)
|
|
59
58
|
}
|
|
60
59
|
|
|
61
|
-
const differs:
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
new ChangeViewNonViewDiffer()
|
|
67
|
-
new RemoveChangedViewDiffer()
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
UpdateEnumModification.createDiff,
|
|
84
|
-
|
|
60
|
+
const differs: Differ[] = [
|
|
61
|
+
new ConvertOneToManyRelationDiffer(),
|
|
62
|
+
new ConvertOneHasManyToManyHasManyRelationDiffer(),
|
|
63
|
+
new RemoveUniqueConstraintDiffer(),
|
|
64
|
+
new RemoveIndexDiffer(),
|
|
65
|
+
new ChangeViewNonViewDiffer(),
|
|
66
|
+
new RemoveChangedViewDiffer(),
|
|
67
|
+
new RemoveEntityDiffer(),
|
|
68
|
+
new RemoveFieldDiffer(),
|
|
69
|
+
new CreateEnumDiffer(),
|
|
70
|
+
new UpdateEntityTableNameDiffer(),
|
|
71
|
+
new ToggleEventLogDiffer(),
|
|
72
|
+
new ToggleJunctionEventLogDiffer(),
|
|
73
|
+
new UpdateColumnDefinitionDiffer(),
|
|
74
|
+
new UpdateColumnNameDiffer(),
|
|
75
|
+
new UpdateRelationOnDeleteDiffer(),
|
|
76
|
+
new MakeRelationNotNullDiffer(),
|
|
77
|
+
new MakeRelationNullableDiffer(),
|
|
78
|
+
new EnableOrphanRemovalDiffer(),
|
|
79
|
+
new DisableOrphanRemovalDiffer(),
|
|
80
|
+
new UpdateRelationOrderByDiffer(),
|
|
81
|
+
new UpdateEnumDiffer(),
|
|
85
82
|
new RemoveChangedFieldDiffer(it => !isRelation(it) || isOwningRelation(it)),
|
|
86
83
|
new RemoveChangedFieldDiffer(it => isRelation(it) && isInverseRelation(it)),
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
UpdateAclSchemaModification.createDiff,
|
|
99
|
-
PatchAclSchemaModification.createDiff,
|
|
100
|
-
|
|
101
|
-
UpdateValidationSchemaModification.createDiff,
|
|
102
|
-
PatchValidationSchemaModification.createDiff,
|
|
103
|
-
].filter(isDefined)
|
|
84
|
+
new CreateEntityDiffer(),
|
|
85
|
+
new CreateColumnDiffer(),
|
|
86
|
+
new CreateViewDiffer(),
|
|
87
|
+
new CreateRelationDiffer(),
|
|
88
|
+
new CreateRelationInverseSideDiffer(),
|
|
89
|
+
new CreateUniqueConstraintDiffer(),
|
|
90
|
+
new CreateIndexDiffer(),
|
|
91
|
+
new RemoveEnumDiffer(),
|
|
92
|
+
new UpdateAclSchemaDiffer(),
|
|
93
|
+
new UpdateValidationSchemaDiffer(),
|
|
94
|
+
]
|
|
104
95
|
|
|
105
96
|
const diffs: Migration.Modification[] = []
|
|
106
97
|
let appliedDiffsSchema = originalSchema
|
|
107
98
|
for (const differ of differs) {
|
|
108
|
-
const differDiffs =
|
|
109
|
-
? differ.createDiff(appliedDiffsSchema, updatedSchema)
|
|
110
|
-
: differ(appliedDiffsSchema, updatedSchema)
|
|
99
|
+
const differDiffs = differ.createDiff(appliedDiffsSchema, updatedSchema)
|
|
111
100
|
appliedDiffsSchema = this.schemaMigrator.applyModifications(appliedDiffsSchema, differDiffs, VERSION_LATEST)
|
|
112
101
|
diffs.push(...differDiffs)
|
|
113
102
|
}
|
package/src/SchemaMigrator.ts
CHANGED
package/src/index.ts
CHANGED
|
@@ -6,10 +6,6 @@ export * from './SchemaMigrator'
|
|
|
6
6
|
export * from './SchemaDiffer'
|
|
7
7
|
export * from './MigrationCreator'
|
|
8
8
|
export * from './MigrationDescriber'
|
|
9
|
-
export
|
|
10
|
-
export * from './modifications/ModificationVersions'
|
|
11
|
-
export * from './modifications/ModificationHandler'
|
|
12
|
-
export * from './modifications/utils/sqlUpdateUtils'
|
|
9
|
+
export * from './modifications'
|
|
13
10
|
export * from './MigrationFilesManager'
|
|
14
11
|
export * from './MigrationVersionHelper'
|
|
15
|
-
export { SchemaUpdateError } from './modifications/exceptions'
|
|
@@ -20,21 +20,33 @@ export interface ModificationHandler<Data> {
|
|
|
20
20
|
describe(context: ModificationDescriptionContext): ModificationDescription
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
-
export type CreateDiff = (originalSchema: Schema, updatedSchema: Schema) => Migration.Modification[]
|
|
24
|
-
|
|
25
23
|
export interface ModificationHandlerOptions {
|
|
26
24
|
formatVersion: number
|
|
27
25
|
systemSchema: string
|
|
28
26
|
}
|
|
29
27
|
|
|
30
|
-
export interface
|
|
31
|
-
id: string
|
|
32
|
-
createModification: (data: Data) => Migration.Modification<Data>
|
|
33
|
-
createDiff?: CreateDiff
|
|
34
|
-
|
|
28
|
+
export interface ModificationHandlerConstructor<Data> {
|
|
35
29
|
new(data: Data, schema: Schema, options: ModificationHandlerOptions): ModificationHandler<Data>
|
|
36
30
|
}
|
|
37
31
|
|
|
38
32
|
export interface Differ {
|
|
39
|
-
createDiff:
|
|
33
|
+
createDiff: (originalSchema: Schema, updatedSchema: Schema) => Migration.Modification[]
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
export interface ModificationType<Id extends String, Data> {
|
|
38
|
+
id: Id
|
|
39
|
+
createModification: (data: Data) => Migration.Modification<Data>
|
|
40
|
+
createHandler: (data: Data, schema: Schema, options: ModificationHandlerOptions) => ModificationHandler<Data>
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export const createModificationType = <Data, Id extends string>({ handler, id }: {
|
|
44
|
+
id: Id
|
|
45
|
+
handler: ModificationHandlerConstructor<Data>
|
|
46
|
+
}): ModificationType<Id, Data> => {
|
|
47
|
+
return {
|
|
48
|
+
id,
|
|
49
|
+
createModification: data => ({ modification: id, ...data }),
|
|
50
|
+
createHandler: (data, schema, options) => new handler(data, schema, options),
|
|
51
|
+
}
|
|
40
52
|
}
|
|
@@ -1,84 +1,88 @@
|
|
|
1
1
|
import { Schema } from '@contember/schema'
|
|
2
|
-
import { ModificationHandler, ModificationHandlerOptions,
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { CreateUniqueConstraintModification, RemoveUniqueConstraintModification } from './constraints'
|
|
2
|
+
import { ModificationHandler, ModificationHandlerOptions, ModificationType } from './ModificationHandler'
|
|
3
|
+
import { patchAclSchemaModification, updateAclSchemaModification } from './acl'
|
|
4
|
+
import { createColumnModification, updateColumnDefinitionModification, updateColumnNameModification } from './columns'
|
|
5
|
+
import { createUniqueConstraintModification, removeUniqueConstraintModification } from './constraints'
|
|
7
6
|
import {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
UpdateEntityNameModification,
|
|
13
|
-
UpdateEntityTableNameModification,
|
|
7
|
+
createEntityModification, createViewModification,
|
|
8
|
+
removeEntityModification, toggleEventLogModification,
|
|
9
|
+
updateEntityNameModification,
|
|
10
|
+
updateEntityTableNameModification,
|
|
14
11
|
} from './entities'
|
|
15
|
-
import {
|
|
16
|
-
import { RemoveFieldModification, UpdateFieldNameModification } from './fields'
|
|
12
|
+
import { updateViewModification } from './entities/UpdateViewModification'
|
|
17
13
|
import {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
14
|
+
createEnumModification,
|
|
15
|
+
removeEnumModification,
|
|
16
|
+
updateEnumModification,
|
|
17
|
+
} from './enums'
|
|
18
|
+
import { removeFieldModification, updateFieldNameModification } from './fields'
|
|
19
|
+
import {
|
|
20
|
+
convertOneHasManyToManyHasManyRelationModification,
|
|
21
|
+
convertOneToManyRelationModification,
|
|
22
|
+
createRelationInverseSideModification,
|
|
23
|
+
createRelationModification, disableOrphanRemovalModification,
|
|
24
|
+
enableOrphanRemovalModification,
|
|
25
|
+
makeRelationNotNullModification,
|
|
26
|
+
makeRelationNullableModification, toggleJunctionEventLogModification,
|
|
27
|
+
updateRelationOnDeleteModification,
|
|
28
|
+
updateRelationOrderByModification,
|
|
29
29
|
} from './relations'
|
|
30
|
-
import {
|
|
30
|
+
import { patchValidationSchemaModification, updateValidationSchemaModification } from './validation'
|
|
31
|
+
import { createIndexModification, removeIndexModification } from './indexes'
|
|
32
|
+
|
|
31
33
|
|
|
32
34
|
class ModificationHandlerFactory {
|
|
33
|
-
constructor(private readonly map: Record<string,
|
|
35
|
+
constructor(private readonly map: Record<string, ModificationType<string, any>>) {}
|
|
34
36
|
|
|
35
37
|
public create<D>(name: string, data: D, schema: Schema, options: ModificationHandlerOptions): ModificationHandler<D> {
|
|
36
38
|
if (!this.map[name]) {
|
|
37
39
|
throw new Error(`Undefined modification handler for ${name}`)
|
|
38
40
|
}
|
|
39
|
-
return
|
|
41
|
+
return this.map[name].createHandler(data, schema, options)
|
|
40
42
|
}
|
|
41
43
|
}
|
|
42
44
|
|
|
43
45
|
namespace ModificationHandlerFactory {
|
|
44
|
-
|
|
46
|
+
type HandlerMap<D> = { [modificationName: string]: ModificationType<string, D> }
|
|
45
47
|
|
|
46
48
|
const handlers = [
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
49
|
+
updateAclSchemaModification,
|
|
50
|
+
patchAclSchemaModification,
|
|
51
|
+
createColumnModification,
|
|
52
|
+
updateColumnDefinitionModification,
|
|
53
|
+
updateColumnNameModification,
|
|
54
|
+
createUniqueConstraintModification,
|
|
55
|
+
removeUniqueConstraintModification,
|
|
56
|
+
createIndexModification,
|
|
57
|
+
removeIndexModification,
|
|
58
|
+
createEntityModification,
|
|
59
|
+
removeEntityModification,
|
|
60
|
+
updateEntityNameModification,
|
|
61
|
+
updateEntityTableNameModification,
|
|
62
|
+
updateViewModification,
|
|
63
|
+
createViewModification,
|
|
64
|
+
createEnumModification,
|
|
65
|
+
removeEnumModification,
|
|
66
|
+
updateEnumModification,
|
|
67
|
+
removeFieldModification,
|
|
68
|
+
updateFieldNameModification,
|
|
69
|
+
createRelationInverseSideModification,
|
|
70
|
+
createRelationModification,
|
|
71
|
+
updateRelationOnDeleteModification,
|
|
72
|
+
updateRelationOrderByModification,
|
|
73
|
+
makeRelationNotNullModification,
|
|
74
|
+
makeRelationNullableModification,
|
|
75
|
+
enableOrphanRemovalModification,
|
|
76
|
+
disableOrphanRemovalModification,
|
|
77
|
+
updateValidationSchemaModification,
|
|
78
|
+
patchValidationSchemaModification,
|
|
79
|
+
convertOneToManyRelationModification,
|
|
80
|
+
toggleEventLogModification,
|
|
81
|
+
toggleJunctionEventLogModification,
|
|
82
|
+
convertOneHasManyToManyHasManyRelationModification,
|
|
79
83
|
]
|
|
80
84
|
|
|
81
85
|
export const defaultFactoryMap: HandlerMap<any> = Object.fromEntries(handlers.map(it => [it.id, it]))
|
|
82
86
|
}
|
|
83
87
|
|
|
84
|
-
export
|
|
88
|
+
export { ModificationHandlerFactory }
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
import { MigrationBuilder } from '@contember/database-migrations'
|
|
2
2
|
import { SchemaUpdater } from '../utils/schemaUpdateUtils'
|
|
3
|
-
import {
|
|
3
|
+
import { createModificationType, ModificationHandler } from '../ModificationHandler'
|
|
4
4
|
import { applyPatch, Operation } from 'rfc6902'
|
|
5
5
|
import deepCopy from '../../utils/deepCopy'
|
|
6
6
|
|
|
7
|
-
export
|
|
8
|
-
static id = 'patchAclSchema'
|
|
9
|
-
|
|
7
|
+
export class PatchAclSchemaModificationHandler implements ModificationHandler<PatchAclSchemaModificationData>{
|
|
10
8
|
constructor(private readonly data: PatchAclSchemaModificationData) {}
|
|
11
9
|
|
|
12
10
|
public createSql(builder: MigrationBuilder): void {}
|
|
@@ -29,12 +27,13 @@ export const PatchAclSchemaModification: ModificationHandlerStatic<PatchAclSchem
|
|
|
29
27
|
describe() {
|
|
30
28
|
return { message: 'Update ACL schema' }
|
|
31
29
|
}
|
|
32
|
-
|
|
33
|
-
static createModification(data: PatchAclSchemaModificationData) {
|
|
34
|
-
return { modification: this.id, ...data }
|
|
35
|
-
}
|
|
36
30
|
}
|
|
37
31
|
|
|
32
|
+
export const patchAclSchemaModification = createModificationType({
|
|
33
|
+
id: 'patchAclSchema',
|
|
34
|
+
handler: PatchAclSchemaModificationHandler,
|
|
35
|
+
})
|
|
36
|
+
|
|
38
37
|
export interface PatchAclSchemaModificationData {
|
|
39
38
|
patch: Operation[]
|
|
40
39
|
}
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
import { MigrationBuilder } from '@contember/database-migrations'
|
|
2
2
|
import { Acl, Schema } from '@contember/schema'
|
|
3
3
|
import { SchemaUpdater } from '../utils/schemaUpdateUtils'
|
|
4
|
-
import {
|
|
4
|
+
import { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'
|
|
5
5
|
import deepEqual from 'fast-deep-equal'
|
|
6
6
|
import { createPatch } from 'rfc6902'
|
|
7
|
-
import {
|
|
8
|
-
|
|
9
|
-
export const UpdateAclSchemaModification: ModificationHandlerStatic<UpdateAclSchemaModificationData> = class {
|
|
10
|
-
public static id = 'updateAclSchema'
|
|
7
|
+
import { patchAclSchemaModification } from './PatchAclSchemaModification'
|
|
11
8
|
|
|
9
|
+
export class UpdateAclSchemaModificationHandler implements ModificationHandler<UpdateAclSchemaModificationData>{
|
|
12
10
|
constructor(private readonly data: UpdateAclSchemaModificationData) {}
|
|
13
11
|
|
|
14
12
|
public createSql(builder: MigrationBuilder): void {}
|
|
@@ -23,23 +21,26 @@ export const UpdateAclSchemaModification: ModificationHandlerStatic<UpdateAclSch
|
|
|
23
21
|
describe() {
|
|
24
22
|
return { message: 'Update ACL schema' }
|
|
25
23
|
}
|
|
24
|
+
}
|
|
26
25
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
26
|
+
export interface UpdateAclSchemaModificationData {
|
|
27
|
+
schema: Acl.Schema
|
|
28
|
+
}
|
|
30
29
|
|
|
31
|
-
|
|
30
|
+
export const updateAclSchemaModification = createModificationType({
|
|
31
|
+
id: 'updateAclSchema',
|
|
32
|
+
handler: UpdateAclSchemaModificationHandler,
|
|
33
|
+
})
|
|
34
|
+
|
|
35
|
+
export class UpdateAclSchemaDiffer implements Differ {
|
|
36
|
+
createDiff(originalSchema: Schema, updatedSchema: Schema) {
|
|
32
37
|
if (deepEqual(originalSchema.acl, updatedSchema.acl)) {
|
|
33
38
|
return []
|
|
34
39
|
}
|
|
35
40
|
const patch = createPatch(originalSchema.acl, updatedSchema.acl)
|
|
36
41
|
if (patch.length <= 100) {
|
|
37
|
-
return [
|
|
42
|
+
return [patchAclSchemaModification.createModification({ patch })]
|
|
38
43
|
}
|
|
39
|
-
return [
|
|
44
|
+
return [updateAclSchemaModification.createModification({ schema: updatedSchema.acl })]
|
|
40
45
|
}
|
|
41
46
|
}
|
|
42
|
-
|
|
43
|
-
export interface UpdateAclSchemaModificationData {
|
|
44
|
-
schema: Acl.Schema
|
|
45
|
-
}
|
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
import { escapeValue, MigrationBuilder } from '@contember/database-migrations'
|
|
2
2
|
import { Model, Schema } from '@contember/schema'
|
|
3
3
|
import { addField, SchemaUpdater, updateEntity, updateModel } from '../utils/schemaUpdateUtils'
|
|
4
|
-
import {
|
|
4
|
+
import { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'
|
|
5
5
|
import { wrapIdentifier } from '../../utils/dbHelpers'
|
|
6
6
|
import { getColumnName, isColumn } from '@contember/schema-utils'
|
|
7
7
|
import { ImplementationException } from '../../exceptions'
|
|
8
8
|
import { createFields } from '../utils/diffUtils'
|
|
9
9
|
|
|
10
|
-
export
|
|
11
|
-
static id = 'createColumn'
|
|
12
|
-
|
|
10
|
+
export class CreateColumnModificationHandler implements ModificationHandler<CreateColumnModificationData> {
|
|
13
11
|
constructor(private readonly data: CreateColumnModificationData, private readonly schema: Schema) {}
|
|
14
12
|
|
|
15
13
|
public createSql(builder: MigrationBuilder): void {
|
|
@@ -63,17 +61,28 @@ export const CreateColumnModification: ModificationHandlerStatic<CreateColumnMod
|
|
|
63
61
|
: undefined
|
|
64
62
|
return { message: `Add field ${this.data.entityName}.${this.data.field.name}`, failureWarning }
|
|
65
63
|
}
|
|
64
|
+
}
|
|
66
65
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
66
|
+
export interface CreateColumnModificationData {
|
|
67
|
+
entityName: string
|
|
68
|
+
field: Model.AnyColumn
|
|
69
|
+
fillValue?: any
|
|
70
|
+
copyValue?: string
|
|
71
|
+
}
|
|
70
72
|
|
|
71
|
-
|
|
73
|
+
|
|
74
|
+
export const createColumnModification = createModificationType({
|
|
75
|
+
id: 'createColumn',
|
|
76
|
+
handler: CreateColumnModificationHandler,
|
|
77
|
+
})
|
|
78
|
+
|
|
79
|
+
export class CreateColumnDiffer implements Differ {
|
|
80
|
+
createDiff(originalSchema: Schema, updatedSchema: Schema) {
|
|
72
81
|
return createFields(originalSchema, updatedSchema, ({ newField, updatedEntity }) => {
|
|
73
82
|
if (!isColumn(newField)) {
|
|
74
83
|
return undefined
|
|
75
84
|
}
|
|
76
|
-
return
|
|
85
|
+
return createColumnModification.createModification({
|
|
77
86
|
entityName: updatedEntity.name,
|
|
78
87
|
field: newField,
|
|
79
88
|
...(newField.default !== undefined ? { fillValue: newField.default } : {}),
|
|
@@ -81,10 +90,3 @@ export const CreateColumnModification: ModificationHandlerStatic<CreateColumnMod
|
|
|
81
90
|
})
|
|
82
91
|
}
|
|
83
92
|
}
|
|
84
|
-
|
|
85
|
-
export interface CreateColumnModificationData {
|
|
86
|
-
entityName: string
|
|
87
|
-
field: Model.AnyColumn
|
|
88
|
-
fillValue?: any
|
|
89
|
-
copyValue?: string
|
|
90
|
-
}
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import { MigrationBuilder } from '@contember/database-migrations'
|
|
2
2
|
import { Model, Schema } from '@contember/schema'
|
|
3
3
|
import { SchemaUpdater, updateEntity, updateField, updateModel } from '../utils/schemaUpdateUtils'
|
|
4
|
-
import {
|
|
4
|
+
import { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'
|
|
5
5
|
import deepEqual from 'fast-deep-equal'
|
|
6
6
|
import { updateColumns } from '../utils/diffUtils'
|
|
7
7
|
import { wrapIdentifier } from '@contember/database'
|
|
8
8
|
|
|
9
|
-
export
|
|
10
|
-
static id = 'updateColumnDefinition'
|
|
9
|
+
export class UpdateColumnDefinitionModificationHandler implements ModificationHandler<UpdateColumnDefinitionModificationData> {
|
|
11
10
|
constructor(private readonly data: UpdateColumnDefinitionModificationData, private readonly schema: Schema) {}
|
|
12
11
|
|
|
13
12
|
public createSql(builder: MigrationBuilder): void {
|
|
@@ -71,12 +70,33 @@ export const UpdateColumnDefinitionModification: ModificationHandlerStatic<Updat
|
|
|
71
70
|
failureWarning,
|
|
72
71
|
}
|
|
73
72
|
}
|
|
73
|
+
}
|
|
74
74
|
|
|
75
|
-
|
|
76
|
-
|
|
75
|
+
type SequenceDefinitionAlter =
|
|
76
|
+
& Model.AnyColumn['sequence']
|
|
77
|
+
& {
|
|
78
|
+
restart?: boolean
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
type ColumnDefinitionAlter =
|
|
82
|
+
& Model.AnyColumn
|
|
83
|
+
& {
|
|
84
|
+
sequence?: SequenceDefinitionAlter
|
|
77
85
|
}
|
|
78
86
|
|
|
79
|
-
|
|
87
|
+
export interface UpdateColumnDefinitionModificationData {
|
|
88
|
+
entityName: string
|
|
89
|
+
fieldName: string
|
|
90
|
+
definition: ColumnDefinitionAlter
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
export const updateColumnDefinitionModification = createModificationType({
|
|
94
|
+
id: 'updateColumnDefinition',
|
|
95
|
+
handler: UpdateColumnDefinitionModificationHandler,
|
|
96
|
+
})
|
|
97
|
+
|
|
98
|
+
export class UpdateColumnDefinitionDiffer implements Differ {
|
|
99
|
+
createDiff(originalSchema: Schema, updatedSchema: Schema) {
|
|
80
100
|
return updateColumns(originalSchema, updatedSchema, ({ originalColumn, updatedColumn, updatedEntity }) => {
|
|
81
101
|
const {
|
|
82
102
|
name: {},
|
|
@@ -91,7 +111,7 @@ export const UpdateColumnDefinitionModification: ModificationHandlerStatic<Updat
|
|
|
91
111
|
if (deepEqual(updatedDefinition, originalDefinition)) {
|
|
92
112
|
return undefined
|
|
93
113
|
}
|
|
94
|
-
return
|
|
114
|
+
return updateColumnDefinitionModification.createModification({
|
|
95
115
|
entityName: updatedEntity.name,
|
|
96
116
|
fieldName: updatedColumn.name,
|
|
97
117
|
definition: updatedDefinition,
|
|
@@ -99,21 +119,3 @@ export const UpdateColumnDefinitionModification: ModificationHandlerStatic<Updat
|
|
|
99
119
|
})
|
|
100
120
|
}
|
|
101
121
|
}
|
|
102
|
-
|
|
103
|
-
type SequenceDefinitionAlter =
|
|
104
|
-
& Model.AnyColumn['sequence']
|
|
105
|
-
& {
|
|
106
|
-
restart?: boolean
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
type ColumnDefinitionAlter =
|
|
110
|
-
& Model.AnyColumn
|
|
111
|
-
& {
|
|
112
|
-
sequence?: SequenceDefinitionAlter
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
export interface UpdateColumnDefinitionModificationData {
|
|
116
|
-
entityName: string
|
|
117
|
-
fieldName: string
|
|
118
|
-
definition: ColumnDefinitionAlter
|
|
119
|
-
}
|