@contember/schema-migrations 1.2.0-alpha.8 → 1.2.0-beta.1
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/Migration.d.ts +2 -0
- package/dist/src/Migration.d.ts.map +1 -1
- package/dist/src/Migration.js +2 -2
- package/dist/src/Migration.js.map +1 -1
- package/dist/src/MigrationCreator.d.ts +3 -1
- package/dist/src/MigrationCreator.d.ts.map +1 -1
- package/dist/src/MigrationCreator.js +2 -2
- package/dist/src/MigrationCreator.js.map +1 -1
- 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/MigrationFilesManager.d.ts.map +1 -1
- package/dist/src/MigrationFilesManager.js +10 -19
- package/dist/src/MigrationFilesManager.js.map +1 -1
- package/dist/src/MigrationsResolver.d.ts.map +1 -1
- package/dist/src/MigrationsResolver.js +1 -0
- package/dist/src/MigrationsResolver.js.map +1 -1
- package/dist/src/SchemaDiffer.d.ts +6 -1
- package/dist/src/SchemaDiffer.d.ts.map +1 -1
- package/dist/src/SchemaDiffer.js +46 -54
- package/dist/src/SchemaDiffer.js.map +1 -1
- package/dist/src/SchemaMigrator.d.ts +3 -2
- package/dist/src/SchemaMigrator.d.ts.map +1 -1
- package/dist/src/SchemaMigrator.js.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 +16 -8
- 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 +8 -7
- package/dist/src/modifications/ModificationHandlerFactory.d.ts.map +1 -1
- package/dist/src/modifications/ModificationHandlerFactory.js +43 -39
- 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 +21 -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 +20 -4
- package/dist/src/modifications/columns/UpdateColumnDefinitionModification.d.ts.map +1 -1
- package/dist/src/modifications/columns/UpdateColumnDefinitionModification.js +78 -71
- package/dist/src/modifications/columns/UpdateColumnDefinitionModification.js.map +1 -1
- package/dist/src/modifications/columns/UpdateColumnNameModification.d.ts +18 -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.d.ts +1 -3
- package/dist/src/modifications/differs/RemoveChangedFieldDiffer.d.ts.map +1 -1
- package/dist/src/modifications/differs/RemoveChangedFieldDiffer.js +1 -1
- package/dist/src/modifications/differs/RemoveChangedViewDiffer.d.ts +1 -2
- package/dist/src/modifications/differs/RemoveChangedViewDiffer.d.ts.map +1 -1
- package/dist/src/modifications/differs/RemoveChangedViewDiffer.js +7 -20
- package/dist/src/modifications/differs/RemoveChangedViewDiffer.js.map +1 -1
- package/dist/src/modifications/entities/CreateEntityModification.d.ts +19 -2
- package/dist/src/modifications/entities/CreateEntityModification.d.ts.map +1 -1
- package/dist/src/modifications/entities/CreateEntityModification.js +66 -63
- package/dist/src/modifications/entities/CreateEntityModification.js.map +1 -1
- package/dist/src/modifications/entities/CreateViewModification.d.ts +21 -2
- package/dist/src/modifications/entities/CreateViewModification.d.ts.map +1 -1
- package/dist/src/modifications/entities/CreateViewModification.js +59 -56
- package/dist/src/modifications/entities/CreateViewModification.js.map +1 -1
- package/dist/src/modifications/entities/RemoveEntityModification.d.ts +22 -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 +18 -3
- package/dist/src/modifications/indexes/CreateIndexModification.d.ts.map +1 -1
- package/dist/src/modifications/indexes/CreateIndexModification.js +68 -65
- package/dist/src/modifications/indexes/CreateIndexModification.js.map +1 -1
- package/dist/src/modifications/indexes/RemoveIndexModification.d.ts +18 -2
- package/dist/src/modifications/indexes/RemoveIndexModification.d.ts.map +1 -1
- package/dist/src/modifications/indexes/RemoveIndexModification.js +47 -44
- package/dist/src/modifications/indexes/RemoveIndexModification.js.map +1 -1
- package/dist/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.d.ts +22 -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 +22 -2
- package/dist/src/modifications/relations/ConvertOneToManyRelationModification.d.ts.map +1 -1
- package/dist/src/modifications/relations/ConvertOneToManyRelationModification.js +81 -70
- package/dist/src/modifications/relations/ConvertOneToManyRelationModification.js.map +1 -1
- package/dist/src/modifications/relations/CreateRelationInverseSideModification.d.ts +18 -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 +24 -3
- package/dist/src/modifications/relations/CreateRelationModification.d.ts.map +1 -1
- package/dist/src/modifications/relations/CreateRelationModification.js +99 -85
- package/dist/src/modifications/relations/CreateRelationModification.js.map +1 -1
- package/dist/src/modifications/relations/DisableOrphanRemovalModification.d.ts +18 -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 +18 -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 +19 -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 +18 -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 +25 -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 +18 -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 +18 -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/settings/UpdateSettingsModification.d.ts +28 -0
- package/dist/src/modifications/settings/UpdateSettingsModification.d.ts.map +1 -0
- package/dist/src/modifications/settings/UpdateSettingsModification.js +64 -0
- package/dist/src/modifications/settings/UpdateSettingsModification.js.map +1 -0
- package/dist/src/modifications/settings/index.d.ts +2 -0
- package/dist/src/modifications/settings/index.d.ts.map +1 -0
- package/dist/src/modifications/settings/index.js +18 -0
- package/dist/src/modifications/settings/index.js.map +1 -0
- 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/utils/createJunctionTable.d.ts +2 -1
- package/dist/src/modifications/utils/createJunctionTable.d.ts.map +1 -1
- package/dist/src/modifications/utils/createJunctionTable.js +7 -5
- package/dist/src/modifications/utils/createJunctionTable.js.map +1 -1
- package/dist/src/modifications/utils/diffUtils.d.ts +14 -12
- package/dist/src/modifications/utils/diffUtils.d.ts.map +1 -1
- package/dist/src/modifications/utils/diffUtils.js.map +1 -1
- package/dist/src/modifications/utils/schemaMeta.d.ts +8 -0
- package/dist/src/modifications/utils/schemaMeta.d.ts.map +1 -0
- package/dist/src/modifications/utils/schemaMeta.js +13 -0
- package/dist/src/modifications/utils/schemaMeta.js.map +1 -0
- package/dist/src/modifications/utils/schemaUpdateUtils.d.ts +4 -2
- package/dist/src/modifications/utils/schemaUpdateUtils.d.ts.map +1 -1
- package/dist/src/modifications/utils/schemaUpdateUtils.js +24 -2
- package/dist/src/modifications/utils/schemaUpdateUtils.js.map +1 -1
- package/dist/src/modifications/utils/viewDependencies.d.ts +4 -2
- package/dist/src/modifications/utils/viewDependencies.d.ts.map +1 -1
- package/dist/src/modifications/utils/viewDependencies.js +29 -6
- package/dist/src/modifications/utils/viewDependencies.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/tests/cases/integration/convertOneHasManyToManyHasManyRelation.test.js +3 -2
- package/dist/tests/cases/integration/convertOneHasManyToManyHasManyRelation.test.js.map +1 -1
- 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/createManyHasMany.test.js +3 -2
- package/dist/tests/cases/integration/createManyHasMany.test.js.map +1 -1
- package/dist/tests/cases/integration/createView.test.js +80 -0
- package/dist/tests/cases/integration/createView.test.js.map +1 -1
- package/dist/tests/cases/integration/removeField.test.js +72 -0
- package/dist/tests/cases/integration/removeField.test.js.map +1 -1
- package/dist/tests/cases/integration/takenIndexName.test.d.ts +2 -0
- package/dist/tests/cases/integration/takenIndexName.test.d.ts.map +1 -0
- package/dist/tests/cases/integration/takenIndexName.test.js +307 -0
- package/dist/tests/cases/integration/takenIndexName.test.js.map +1 -0
- package/dist/tests/cases/integration/updateColumnDefinition.test.js +160 -0
- package/dist/tests/cases/integration/updateColumnDefinition.test.js.map +1 -1
- package/dist/tests/scripts/checkCreateConsistentMigrations.js +5 -4
- package/dist/tests/scripts/checkCreateConsistentMigrations.js.map +1 -1
- package/dist/tests/src/tests.d.ts.map +1 -1
- package/dist/tests/src/tests.js +15 -5
- package/dist/tests/src/tests.js.map +1 -1
- package/dist/tests/tsconfig.tsbuildinfo +1 -1
- package/package.json +6 -6
- package/src/Migration.ts +3 -1
- package/src/MigrationCreator.ts +2 -1
- package/src/MigrationDescriber.ts +8 -8
- package/src/MigrationFilesManager.ts +10 -20
- package/src/MigrationsResolver.ts +1 -0
- package/src/SchemaDiffer.ts +82 -85
- package/src/SchemaMigrator.ts +3 -2
- package/src/index.ts +1 -5
- package/src/modifications/ModificationHandler.ts +22 -9
- package/src/modifications/ModificationHandlerFactory.ts +69 -65
- 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 +58 -47
- 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 +9 -22
- package/src/modifications/entities/CreateEntityModification.ts +18 -9
- package/src/modifications/entities/CreateViewModification.ts +10 -8
- package/src/modifications/entities/RemoveEntityModification.ts +24 -16
- package/src/modifications/entities/ToggleEventLogModification.ts +20 -13
- package/src/modifications/entities/UpdateEntityNameModification.ts +11 -10
- 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 +18 -18
- package/src/modifications/index.ts +13 -0
- package/src/modifications/indexes/CreateIndexModification.ts +13 -12
- package/src/modifications/indexes/RemoveIndexModification.ts +12 -8
- package/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.ts +48 -29
- package/src/modifications/relations/ConvertOneToManyRelationModification.ts +50 -27
- package/src/modifications/relations/CreateRelationInverseSideModification.ts +15 -13
- package/src/modifications/relations/CreateRelationModification.ts +65 -35
- 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/settings/UpdateSettingsModification.ts +87 -0
- package/src/modifications/settings/index.ts +1 -0
- package/src/modifications/utils/columnUtils.ts +5 -0
- package/src/modifications/utils/createJunctionTable.ts +7 -5
- package/src/modifications/utils/diffUtils.ts +12 -12
- package/src/modifications/utils/schemaMeta.ts +18 -0
- package/src/modifications/utils/schemaUpdateUtils.ts +22 -2
- package/src/modifications/utils/viewDependencies.ts +28 -5
- package/src/modifications/validation/PatchValidationSchemaModification.ts +7 -7
- package/src/modifications/validation/UpdateValidationSchemaModification.ts +17 -14
- package/src/tsconfig.json +2 -2
- package/tests/cases/integration/convertOneHasManyToManyHasManyRelation.test.ts +3 -2
- package/tests/cases/integration/createColumn.test.ts +33 -0
- package/tests/cases/integration/createManyHasMany.test.ts +3 -2
- package/tests/cases/integration/createView.test.ts +70 -0
- package/tests/cases/integration/removeField.test.ts +58 -0
- package/tests/cases/integration/takenIndexName.test.ts +314 -0
- package/tests/cases/integration/updateColumnDefinition.test.ts +138 -1
- package/tests/scripts/checkCreateConsistentMigrations.ts +3 -2
- package/tests/src/tests.ts +21 -11
- 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
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { MigrationBuilder } from '@contember/database-migrations'
|
|
2
2
|
import { Model, Schema } from '@contember/schema'
|
|
3
3
|
import { SchemaUpdater, updateModel } from '../utils/schemaUpdateUtils'
|
|
4
|
-
import {
|
|
4
|
+
import { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'
|
|
5
5
|
import { Migration } from '../../Migration'
|
|
6
6
|
import { PartialEntity } from '../../utils/PartialEntity.js'
|
|
7
7
|
|
|
8
|
-
export
|
|
9
|
-
static id = 'createView'
|
|
8
|
+
export class CreateViewModificationHandler implements ModificationHandler<CreateViewModificationData> {
|
|
10
9
|
constructor(private readonly data: CreateViewModificationData, private readonly schema: Schema) {}
|
|
11
10
|
|
|
12
11
|
public createSql(builder: MigrationBuilder): void {
|
|
@@ -35,12 +34,15 @@ export const CreateViewModification: ModificationHandlerStatic<CreateViewModific
|
|
|
35
34
|
describe() {
|
|
36
35
|
return { message: `Add view ${this.data.entity.name}` }
|
|
37
36
|
}
|
|
37
|
+
}
|
|
38
38
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
39
|
+
export const createViewModification = createModificationType({
|
|
40
|
+
id: 'createView',
|
|
41
|
+
handler: CreateViewModificationHandler,
|
|
42
|
+
})
|
|
42
43
|
|
|
43
|
-
|
|
44
|
+
export class CreateViewDiffer implements Differ {
|
|
45
|
+
createDiff(originalSchema: Schema, updatedSchema: Schema) {
|
|
44
46
|
const newViews = Object.values(updatedSchema.model.entities)
|
|
45
47
|
.filter(it => !originalSchema.model.entities[it.name])
|
|
46
48
|
.filter(it => !!it.view)
|
|
@@ -54,7 +56,7 @@ export const CreateViewModification: ModificationHandlerStatic<CreateViewModific
|
|
|
54
56
|
for (const dependency of entity.view?.dependencies ?? []) {
|
|
55
57
|
cascadeCreate(updatedSchema.model.entities[dependency])
|
|
56
58
|
}
|
|
57
|
-
modifications.push(
|
|
59
|
+
modifications.push(createViewModification.createModification({
|
|
58
60
|
entity: entity,
|
|
59
61
|
}))
|
|
60
62
|
}
|
|
@@ -11,17 +11,21 @@ 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'
|
|
23
|
+
import { SchemaWithMeta } from '../utils/schemaMeta'
|
|
21
24
|
|
|
25
|
+
export class RemoveEntityModificationHandler implements ModificationHandler<RemoveEntityModificationData> {
|
|
22
26
|
constructor(
|
|
23
27
|
private readonly data: RemoveEntityModificationData,
|
|
24
|
-
private readonly schema:
|
|
28
|
+
private readonly schema: SchemaWithMeta,
|
|
25
29
|
private readonly options: ModificationHandlerOptions,
|
|
26
30
|
) {}
|
|
27
31
|
|
|
@@ -33,7 +37,7 @@ export const RemoveEntityModification: ModificationHandlerStatic<RemoveEntityMod
|
|
|
33
37
|
}
|
|
34
38
|
if (this.options.formatVersion >= VERSION_REMOVE_REFERENCING_RELATIONS) {
|
|
35
39
|
this.getFieldsToRemove(this.schema).forEach(([entityName, fieldName]) => {
|
|
36
|
-
(
|
|
40
|
+
removeFieldModification.createHandler({ entityName, fieldName }, this.schema, this.options).createSql(builder)
|
|
37
41
|
})
|
|
38
42
|
}
|
|
39
43
|
builder.dropTable(entity.tableName)
|
|
@@ -104,17 +108,21 @@ export const RemoveEntityModification: ModificationHandlerStatic<RemoveEntityMod
|
|
|
104
108
|
return { message: `Remove entity ${this.data.entityName}`, isDestructive: true }
|
|
105
109
|
}
|
|
106
110
|
|
|
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
111
|
}
|
|
117
112
|
|
|
118
113
|
export interface RemoveEntityModificationData {
|
|
119
114
|
entityName: string
|
|
120
115
|
}
|
|
116
|
+
|
|
117
|
+
export const removeEntityModification = createModificationType({
|
|
118
|
+
id: 'removeEntity',
|
|
119
|
+
handler: RemoveEntityModificationHandler,
|
|
120
|
+
})
|
|
121
|
+
|
|
122
|
+
export class RemoveEntityDiffer implements Differ {
|
|
123
|
+
createDiff(originalSchema: Schema, updatedSchema: Schema) {
|
|
124
|
+
return Object.keys(originalSchema.model.entities)
|
|
125
|
+
.filter(name => !updatedSchema.model.entities[name])
|
|
126
|
+
.map(entityName => removeEntityModification.createModification({ entityName }))
|
|
127
|
+
}
|
|
128
|
+
}
|
|
@@ -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,26 +11,26 @@ 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
|
+
import { SchemaWithMeta } from '../utils/schemaMeta'
|
|
22
23
|
|
|
23
|
-
export
|
|
24
|
-
static id = 'updateEntityName'
|
|
24
|
+
export class UpdateEntityNameModificationHandler implements ModificationHandler<UpdateEntityNameModificationData> {
|
|
25
25
|
private subModification: ModificationHandler<any>
|
|
26
26
|
|
|
27
27
|
constructor(
|
|
28
28
|
private readonly data: UpdateEntityNameModificationData,
|
|
29
|
-
private readonly schema:
|
|
29
|
+
private readonly schema: SchemaWithMeta,
|
|
30
30
|
private readonly options: ModificationHandlerOptions,
|
|
31
31
|
) {
|
|
32
32
|
this.subModification = data.tableName
|
|
33
|
-
?
|
|
33
|
+
? updateEntityTableNameModification.createHandler(
|
|
34
34
|
{ entityName: data.entityName, tableName: data.tableName },
|
|
35
35
|
schema,
|
|
36
36
|
this.options,
|
|
@@ -124,10 +124,6 @@ export const UpdateEntityNameModification: ModificationHandlerStatic<UpdateEntit
|
|
|
124
124
|
describe() {
|
|
125
125
|
return { message: `Change entity name from ${this.data.entityName} to ${this.data.newEntityName}` }
|
|
126
126
|
}
|
|
127
|
-
|
|
128
|
-
static createModification(data: UpdateEntityNameModificationData) {
|
|
129
|
-
return { modification: this.id, ...data }
|
|
130
|
-
}
|
|
131
127
|
}
|
|
132
128
|
|
|
133
129
|
export interface UpdateEntityNameModificationData {
|
|
@@ -135,3 +131,8 @@ export interface UpdateEntityNameModificationData {
|
|
|
135
131
|
newEntityName: string
|
|
136
132
|
tableName?: string
|
|
137
133
|
}
|
|
134
|
+
|
|
135
|
+
export const updateEntityNameModification = createModificationType({
|
|
136
|
+
id: 'updateEntityName',
|
|
137
|
+
handler: UpdateEntityNameModificationHandler,
|
|
138
|
+
})
|
|
@@ -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,26 +13,25 @@ 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
|
+
import { SchemaWithMeta } from '../utils/schemaMeta'
|
|
23
24
|
|
|
24
|
-
export
|
|
25
|
-
static id = 'updateFieldName'
|
|
26
|
-
|
|
25
|
+
export class UpdateFieldNameModificationHandler implements ModificationHandler<UpdateFieldNameModificationData> {
|
|
27
26
|
private renameColumnSubModification: ModificationHandler<any> = new NoopModification()
|
|
28
27
|
|
|
29
28
|
constructor(
|
|
30
29
|
private readonly data: UpdateFieldNameModificationData,
|
|
31
|
-
private readonly schema:
|
|
30
|
+
private readonly schema: SchemaWithMeta,
|
|
32
31
|
private readonly options: ModificationHandlerOptions,
|
|
33
32
|
) {
|
|
34
33
|
if (this.data.columnName) {
|
|
35
|
-
this.renameColumnSubModification =
|
|
34
|
+
this.renameColumnSubModification = updateColumnNameModification.createHandler({
|
|
36
35
|
entityName: this.data.entityName,
|
|
37
36
|
columnName: this.data.columnName,
|
|
38
37
|
fieldName: this.data.fieldName,
|
|
@@ -81,33 +80,33 @@ export const UpdateFieldNameModification: ModificationHandlerStatic<UpdateFieldN
|
|
|
81
80
|
}
|
|
82
81
|
|
|
83
82
|
return acceptFieldVisitor<Model.AnyField>(this.schema.model, entity, field, {
|
|
84
|
-
visitColumn: (
|
|
85
|
-
visitManyHasOne: (
|
|
83
|
+
visitColumn: ({ column }) => column,
|
|
84
|
+
visitManyHasOne: ({ targetEntity, relation, targetRelation }) => {
|
|
86
85
|
return isUpdatedRelation(targetEntity, targetRelation)
|
|
87
86
|
? { ...relation, inversedBy: this.data.newFieldName }
|
|
88
87
|
: relation
|
|
89
88
|
},
|
|
90
|
-
visitOneHasMany: (
|
|
89
|
+
visitOneHasMany: ({ relation, targetEntity, targetRelation }) => {
|
|
91
90
|
return isUpdatedRelation(targetEntity, targetRelation)
|
|
92
91
|
? { ...relation, ownedBy: this.data.newFieldName }
|
|
93
92
|
: relation
|
|
94
93
|
},
|
|
95
|
-
visitOneHasOneOwning: (
|
|
94
|
+
visitOneHasOneOwning: ({ relation, targetEntity, targetRelation }) => {
|
|
96
95
|
return isUpdatedRelation(targetEntity, targetRelation)
|
|
97
96
|
? { ...relation, inversedBy: this.data.newFieldName }
|
|
98
97
|
: relation
|
|
99
98
|
},
|
|
100
|
-
visitOneHasOneInverse: (
|
|
99
|
+
visitOneHasOneInverse: ({ relation, targetEntity, targetRelation }) => {
|
|
101
100
|
return isUpdatedRelation(targetEntity, targetRelation)
|
|
102
101
|
? { ...relation, ownedBy: this.data.newFieldName }
|
|
103
102
|
: relation
|
|
104
103
|
},
|
|
105
|
-
visitManyHasManyOwning: (
|
|
104
|
+
visitManyHasManyOwning: ({ relation, targetEntity, targetRelation }) => {
|
|
106
105
|
return isUpdatedRelation(targetEntity, targetRelation)
|
|
107
106
|
? { ...relation, inversedBy: this.data.newFieldName }
|
|
108
107
|
: relation
|
|
109
108
|
},
|
|
110
|
-
visitManyHasManyInverse: (
|
|
109
|
+
visitManyHasManyInverse: ({ relation, targetEntity, targetRelation }) => {
|
|
111
110
|
return isUpdatedRelation(targetEntity, targetRelation)
|
|
112
111
|
? { ...relation, ownedBy: this.data.newFieldName }
|
|
113
112
|
: relation
|
|
@@ -192,10 +191,6 @@ export const UpdateFieldNameModification: ModificationHandlerStatic<UpdateFieldN
|
|
|
192
191
|
describe() {
|
|
193
192
|
return { message: `Change field name ${this.data.entityName}.${this.data.fieldName} to ${this.data.newFieldName}` }
|
|
194
193
|
}
|
|
195
|
-
|
|
196
|
-
static createModification(data: UpdateFieldNameModificationData) {
|
|
197
|
-
return { modification: this.id, ...data }
|
|
198
|
-
}
|
|
199
194
|
}
|
|
200
195
|
|
|
201
196
|
export interface UpdateFieldNameModificationData {
|
|
@@ -204,3 +199,8 @@ export interface UpdateFieldNameModificationData {
|
|
|
204
199
|
newFieldName: string
|
|
205
200
|
columnName?: string
|
|
206
201
|
}
|
|
202
|
+
|
|
203
|
+
export const updateFieldNameModification = createModificationType({
|
|
204
|
+
id: 'updateFieldName',
|
|
205
|
+
handler: UpdateFieldNameModificationHandler,
|
|
206
|
+
})
|
|
@@ -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'
|