@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,7 +1,8 @@
|
|
|
1
1
|
import { testMigrations } from '../../src/tests'
|
|
2
|
-
import { SchemaBuilder } from '@contember/schema-definition'
|
|
2
|
+
import { SchemaBuilder, SchemaDefinition as def, createSchema } from '@contember/schema-definition'
|
|
3
3
|
import { Model } from '@contember/schema'
|
|
4
4
|
import { SQL } from '../../src/tags'
|
|
5
|
+
import { updateColumnDefinitionModification } from '../../../src'
|
|
5
6
|
|
|
6
7
|
testMigrations('update column definition', {
|
|
7
8
|
originalSchema: new SchemaBuilder()
|
|
@@ -31,3 +32,139 @@ testMigrations('update column definition', {
|
|
|
31
32
|
sql: SQL`ALTER TABLE "author"
|
|
32
33
|
ALTER "registered_at" SET DATA TYPE timestamptz USING "registered_at"::timestamptz;`,
|
|
33
34
|
})
|
|
35
|
+
|
|
36
|
+
namespace SeqOrig {
|
|
37
|
+
export class Author {
|
|
38
|
+
idSeq = def.intColumn()
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
namespace SeqUpdated {
|
|
42
|
+
export class Author {
|
|
43
|
+
idSeq = def.intColumn().notNull().sequence({ start: 10 })
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
testMigrations('add sequence to existing column', {
|
|
47
|
+
originalSchema: createSchema(SeqOrig).model,
|
|
48
|
+
updatedSchema: createSchema(SeqUpdated).model,
|
|
49
|
+
diff: [
|
|
50
|
+
updateColumnDefinitionModification.createModification({
|
|
51
|
+
entityName: 'Author',
|
|
52
|
+
fieldName: 'idSeq',
|
|
53
|
+
definition: {
|
|
54
|
+
type: Model.ColumnType.Int,
|
|
55
|
+
columnType: 'integer',
|
|
56
|
+
nullable: false,
|
|
57
|
+
sequence: {
|
|
58
|
+
precedence: 'BY DEFAULT',
|
|
59
|
+
start: 10,
|
|
60
|
+
},
|
|
61
|
+
},
|
|
62
|
+
}),
|
|
63
|
+
],
|
|
64
|
+
sql: SQL`
|
|
65
|
+
ALTER TABLE "author"
|
|
66
|
+
ALTER "id_seq" SET DATA TYPE integer USING COALESCE("id_seq"::integer, nextval(PG_GET_SERIAL_SEQUENCE($pga$author$pga$, $pga$id_seq$pga$))),
|
|
67
|
+
ALTER "id_seq" SET NOT NULL,
|
|
68
|
+
ALTER "id_seq" ADD GENERATED BY DEFAULT AS IDENTITY (START WITH 10);`,
|
|
69
|
+
})
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
namespace ViewColDepOrig {
|
|
73
|
+
export class Author {
|
|
74
|
+
val = def.intColumn()
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
@def.View('SELECT * FROM author', {
|
|
78
|
+
dependencies: [Author],
|
|
79
|
+
})
|
|
80
|
+
export class AuthorMetaX {
|
|
81
|
+
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
@def.View('SELECT * FROM author_meta_x', {
|
|
85
|
+
dependencies: [AuthorMetaX],
|
|
86
|
+
})
|
|
87
|
+
export class AuthorMetaY {
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
namespace ViewColDepUpdated {
|
|
92
|
+
export class Author {
|
|
93
|
+
val = def.stringColumn()
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
@def.View('SELECT * FROM author', {
|
|
97
|
+
dependencies: [Author],
|
|
98
|
+
})
|
|
99
|
+
export class AuthorMetaX {
|
|
100
|
+
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
@def.View('SELECT * FROM author_meta_x', {
|
|
104
|
+
dependencies: [AuthorMetaX],
|
|
105
|
+
})
|
|
106
|
+
export class AuthorMetaY {
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
testMigrations('recreate view dependent on entity after changing column type', {
|
|
111
|
+
originalSchema: createSchema(ViewColDepOrig).model,
|
|
112
|
+
updatedSchema: createSchema(ViewColDepUpdated).model,
|
|
113
|
+
diff: [{ modification: 'removeEntity', entityName: 'AuthorMetaY' }, {
|
|
114
|
+
modification: 'removeEntity',
|
|
115
|
+
entityName: 'AuthorMetaX',
|
|
116
|
+
}, {
|
|
117
|
+
modification: 'updateColumnDefinition',
|
|
118
|
+
entityName: 'Author',
|
|
119
|
+
fieldName: 'val',
|
|
120
|
+
definition: { nullable: true, type: 'String', columnType: 'text' },
|
|
121
|
+
}, {
|
|
122
|
+
modification: 'createView',
|
|
123
|
+
entity: {
|
|
124
|
+
name: 'AuthorMetaX',
|
|
125
|
+
primary: 'id',
|
|
126
|
+
primaryColumn: 'id',
|
|
127
|
+
unique: {},
|
|
128
|
+
indexes: {},
|
|
129
|
+
fields: {
|
|
130
|
+
id: {
|
|
131
|
+
name: 'id',
|
|
132
|
+
columnName: 'id',
|
|
133
|
+
nullable: false,
|
|
134
|
+
type: 'Uuid',
|
|
135
|
+
columnType: 'uuid',
|
|
136
|
+
},
|
|
137
|
+
},
|
|
138
|
+
tableName: 'author_meta_x',
|
|
139
|
+
eventLog: { enabled: true },
|
|
140
|
+
view: { sql: 'SELECT * FROM author', dependencies: ['Author'] },
|
|
141
|
+
},
|
|
142
|
+
}, {
|
|
143
|
+
modification: 'createView',
|
|
144
|
+
entity: {
|
|
145
|
+
name: 'AuthorMetaY',
|
|
146
|
+
primary: 'id',
|
|
147
|
+
primaryColumn: 'id',
|
|
148
|
+
unique: {},
|
|
149
|
+
indexes: {},
|
|
150
|
+
fields: {
|
|
151
|
+
id: {
|
|
152
|
+
name: 'id',
|
|
153
|
+
columnName: 'id',
|
|
154
|
+
nullable: false,
|
|
155
|
+
type: 'Uuid',
|
|
156
|
+
columnType: 'uuid',
|
|
157
|
+
},
|
|
158
|
+
},
|
|
159
|
+
tableName: 'author_meta_y',
|
|
160
|
+
eventLog: { enabled: true },
|
|
161
|
+
view: { sql: 'SELECT * FROM author_meta_x', dependencies: ['AuthorMetaX'] },
|
|
162
|
+
},
|
|
163
|
+
}],
|
|
164
|
+
sql: SQL`DROP VIEW "author_meta_y";
|
|
165
|
+
DROP VIEW "author_meta_x";
|
|
166
|
+
ALTER TABLE "author"
|
|
167
|
+
ALTER "val" SET DATA TYPE text USING "val"::text;
|
|
168
|
+
CREATE VIEW "author_meta_x" AS SELECT * FROM author;
|
|
169
|
+
CREATE VIEW "author_meta_y" AS SELECT * FROM author_meta_x;`,
|
|
170
|
+
})
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { relative } from 'path'
|
|
1
|
+
import { relative } from 'node:path'
|
|
2
2
|
import {
|
|
3
3
|
MigrationFilesManager,
|
|
4
4
|
MigrationsResolver,
|
|
@@ -18,7 +18,8 @@ import { emptySchema, schemaType } from '@contember/schema-utils'
|
|
|
18
18
|
for (const migration of await migrationsResolver.getMigrations()) {
|
|
19
19
|
const nextSchema = migrator.applyModifications(schema, migration.modifications, migration.formatVersion)
|
|
20
20
|
schemaType(nextSchema)
|
|
21
|
-
|
|
21
|
+
const { meta, ...nextSchemaWithoutMeta } = nextSchema
|
|
22
|
+
differ.diffSchemas(schema, nextSchemaWithoutMeta)
|
|
22
23
|
|
|
23
24
|
schema = nextSchema
|
|
24
25
|
}
|
package/tests/src/tests.ts
CHANGED
|
@@ -2,6 +2,8 @@ import { Migration, ModificationHandlerFactory, SchemaDiffer, SchemaMigrator, VE
|
|
|
2
2
|
import { Acl, Model } from '@contember/schema'
|
|
3
3
|
import { createMigrationBuilder } from '@contember/database-migrations'
|
|
4
4
|
import { assert, describe, it } from 'vitest'
|
|
5
|
+
import { SchemaWithMeta } from '../../src/modifications/utils/schemaMeta'
|
|
6
|
+
import { emptySchema } from '@contember/schema-utils'
|
|
5
7
|
|
|
6
8
|
const modificationFactory = new ModificationHandlerFactory(ModificationHandlerFactory.defaultFactoryMap)
|
|
7
9
|
const schemaMigrator = new SchemaMigrator(modificationFactory)
|
|
@@ -27,17 +29,24 @@ export function testDiffSchemas(
|
|
|
27
29
|
updatedAcl: Acl.Schema = emptyAcl,
|
|
28
30
|
) {
|
|
29
31
|
const actualDiff = schemaDiffer.diffSchemas(
|
|
30
|
-
{ model: originalModel, acl: originalAcl, validation: {} },
|
|
31
|
-
{ model: updatedModel, acl: updatedAcl, validation: {} },
|
|
32
|
-
|
|
32
|
+
{ ...emptySchema, model: originalModel, acl: originalAcl, validation: {} },
|
|
33
|
+
{ ...emptySchema, model: updatedModel, acl: updatedAcl, validation: {} },
|
|
34
|
+
{ skipRecreateValidation: true },
|
|
33
35
|
)
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
36
|
+
try {
|
|
37
|
+
assert.deepStrictEqual(actualDiff, expectedDiff)
|
|
38
|
+
} catch (e) {
|
|
39
|
+
// eslint-disable-next-line no-console
|
|
40
|
+
console.log(JSON.stringify(actualDiff))
|
|
41
|
+
throw e
|
|
42
|
+
}
|
|
43
|
+
const { meta, ...schema } = schemaMigrator.applyModifications(
|
|
44
|
+
{ ...emptySchema, model: originalModel, acl: originalAcl, validation: {} },
|
|
37
45
|
actualDiff,
|
|
38
46
|
VERSION_LATEST,
|
|
39
|
-
)
|
|
47
|
+
) as SchemaWithMeta
|
|
40
48
|
assert.deepStrictEqual(schema, {
|
|
49
|
+
...emptySchema,
|
|
41
50
|
model: updatedModel,
|
|
42
51
|
acl: updatedAcl,
|
|
43
52
|
validation: {},
|
|
@@ -51,13 +60,14 @@ export function testApplyDiff(
|
|
|
51
60
|
originalAcl: Acl.Schema = emptyAcl,
|
|
52
61
|
expectedAcl: Acl.Schema = emptyAcl,
|
|
53
62
|
) {
|
|
54
|
-
const actualSchema = schemaMigrator.applyModifications(
|
|
55
|
-
{ model: originalModel, acl: originalAcl, validation: {} },
|
|
63
|
+
const { meta, ...actualSchema } = schemaMigrator.applyModifications(
|
|
64
|
+
{ ...emptySchema, model: originalModel, acl: originalAcl, validation: {} },
|
|
56
65
|
diff,
|
|
57
66
|
VERSION_LATEST,
|
|
58
|
-
)
|
|
67
|
+
) as SchemaWithMeta
|
|
59
68
|
|
|
60
69
|
assert.deepStrictEqual(actualSchema, {
|
|
70
|
+
...emptySchema,
|
|
61
71
|
model: expectedModel,
|
|
62
72
|
acl: expectedAcl,
|
|
63
73
|
validation: {},
|
|
@@ -65,7 +75,7 @@ export function testApplyDiff(
|
|
|
65
75
|
}
|
|
66
76
|
|
|
67
77
|
export function testGenerateSql(originalSchema: Model.Schema, diff: Migration.Modification[], expectedSql: string) {
|
|
68
|
-
let schema = { model: originalSchema, acl: emptyAcl, validation: {} }
|
|
78
|
+
let schema = { ...emptySchema, model: originalSchema, acl: emptyAcl, validation: {} }
|
|
69
79
|
const builder = createMigrationBuilder()
|
|
70
80
|
for (let { modification, ...data } of diff) {
|
|
71
81
|
const modificationHandler = modificationFactory.create(modification, data, schema, { formatVersion: VERSION_LATEST, systemSchema: 'system' })
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { ModificationHandlerStatic } from '../ModificationHandler';
|
|
2
|
-
export declare const ToggleJunctionEventLogModification: ModificationHandlerStatic<ToggleJunctionEventLogModificationData>;
|
|
3
|
-
export interface ToggleJunctionEventLogModificationData {
|
|
4
|
-
entityName: string;
|
|
5
|
-
fieldName: string;
|
|
6
|
-
enabled: boolean;
|
|
7
|
-
}
|
|
8
|
-
//# sourceMappingURL=ToggleManyHasManyEventLogModification.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ToggleManyHasManyEventLogModification.d.ts","sourceRoot":"","sources":["../../../../src/modifications/relations/ToggleManyHasManyEventLogModification.ts"],"names":[],"mappings":"AAGA,OAAO,EAA8B,yBAAyB,EAAE,MAAM,wBAAwB,CAAA;AAW9F,eAAO,MAAM,kCAAkC,EAAE,yBAAyB,CAAC,sCAAsC,CAiFhH,CAAA;AAED,MAAM,WAAW,sCAAsC;IACtD,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,OAAO,CAAA;CAChB"}
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var _a;
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.ToggleJunctionEventLogModification = void 0;
|
|
5
|
-
const schema_1 = require("@contember/schema");
|
|
6
|
-
const schemaUpdateUtils_1 = require("../utils/schemaUpdateUtils");
|
|
7
|
-
const sqlUpdateUtils_1 = require("../utils/sqlUpdateUtils");
|
|
8
|
-
const schema_utils_1 = require("@contember/schema-utils");
|
|
9
|
-
const diffUtils_1 = require("../utils/diffUtils");
|
|
10
|
-
const isIt_1 = require("../../utils/isIt");
|
|
11
|
-
exports.ToggleJunctionEventLogModification = (_a = class {
|
|
12
|
-
constructor(data, schema, options) {
|
|
13
|
-
this.data = data;
|
|
14
|
-
this.schema = schema;
|
|
15
|
-
this.options = options;
|
|
16
|
-
}
|
|
17
|
-
createSql(builder) {
|
|
18
|
-
const entity = this.schema.model.entities[this.data.entityName];
|
|
19
|
-
const relation = entity.fields[this.data.fieldName];
|
|
20
|
-
if (!(0, schema_utils_1.isRelation)(relation) || relation.type !== schema_1.Model.RelationType.ManyHasMany || !(0, schema_utils_1.isOwningRelation)(relation)) {
|
|
21
|
-
throw new Error('invalid field');
|
|
22
|
-
}
|
|
23
|
-
const tableName = relation.joiningTable.tableName;
|
|
24
|
-
if (this.data.enabled) {
|
|
25
|
-
const primaryColumns = [
|
|
26
|
-
relation.joiningTable.joiningColumn.columnName,
|
|
27
|
-
relation.joiningTable.inverseJoiningColumn.columnName,
|
|
28
|
-
];
|
|
29
|
-
(0, sqlUpdateUtils_1.createEventTrigger)(builder, this.options.systemSchema, tableName, primaryColumns);
|
|
30
|
-
(0, sqlUpdateUtils_1.createEventTrxTrigger)(builder, this.options.systemSchema, tableName);
|
|
31
|
-
}
|
|
32
|
-
else {
|
|
33
|
-
(0, sqlUpdateUtils_1.dropEventTrigger)(builder, tableName);
|
|
34
|
-
(0, sqlUpdateUtils_1.dropEventTrxTrigger)(builder, tableName);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
getSchemaUpdater() {
|
|
38
|
-
const { entityName, fieldName, enabled } = this.data;
|
|
39
|
-
return (0, schemaUpdateUtils_1.updateModel)((0, schemaUpdateUtils_1.updateEntity)(entityName, (0, schemaUpdateUtils_1.updateField)(fieldName, ({ field: { joiningTable: { eventLog, ...joiningTable }, ...field } }) => {
|
|
40
|
-
return {
|
|
41
|
-
...field,
|
|
42
|
-
joiningTable: {
|
|
43
|
-
...joiningTable,
|
|
44
|
-
eventLog: {
|
|
45
|
-
enabled,
|
|
46
|
-
},
|
|
47
|
-
},
|
|
48
|
-
};
|
|
49
|
-
})));
|
|
50
|
-
}
|
|
51
|
-
describe() {
|
|
52
|
-
return {
|
|
53
|
-
message: `${this.data.enabled ? 'Enable' : 'Disable'} event log for ${this.data.entityName}.${this.data.fieldName}`,
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
static createModification(data) {
|
|
57
|
-
return { modification: this.id, ...data };
|
|
58
|
-
}
|
|
59
|
-
static createDiff(originalSchema, updatedSchema) {
|
|
60
|
-
return (0, diffUtils_1.updateRelations)(originalSchema, updatedSchema, ({ originalRelation, updatedRelation, updatedEntity }) => {
|
|
61
|
-
var _a, _b, _c, _d;
|
|
62
|
-
if (originalRelation.type === updatedRelation.type &&
|
|
63
|
-
(0, isIt_1.isIt)(updatedRelation, 'joiningTable') &&
|
|
64
|
-
(0, isIt_1.isIt)(originalRelation, 'joiningTable')) {
|
|
65
|
-
const newValue = (_b = (_a = updatedRelation.joiningTable.eventLog) === null || _a === void 0 ? void 0 : _a.enabled) !== null && _b !== void 0 ? _b : false;
|
|
66
|
-
const oldValue = (_d = (_c = originalRelation.joiningTable.eventLog) === null || _c === void 0 ? void 0 : _c.enabled) !== null && _d !== void 0 ? _d : false;
|
|
67
|
-
if (newValue !== oldValue) {
|
|
68
|
-
return exports.ToggleJunctionEventLogModification.createModification({
|
|
69
|
-
entityName: updatedEntity.name,
|
|
70
|
-
fieldName: updatedRelation.name,
|
|
71
|
-
enabled: newValue,
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
return undefined;
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
},
|
|
79
|
-
_a.id = 'toggleJunctionEventLog',
|
|
80
|
-
_a);
|
|
81
|
-
//# sourceMappingURL=ToggleManyHasManyEventLogModification.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ToggleManyHasManyEventLogModification.js","sourceRoot":"","sources":["../../../../src/modifications/relations/ToggleManyHasManyEventLogModification.ts"],"names":[],"mappings":"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"}
|