@contember/schema-migrations 1.2.1 → 1.3.0-alpha.13
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/MigrationCreator.js +2 -2
- package/dist/src/MigrationCreator.js.map +1 -1
- package/dist/src/MigrationDescriber.d.ts +4 -4
- package/dist/src/MigrationDescriber.d.ts.map +1 -1
- package/dist/src/MigrationDescriber.js +8 -7
- package/dist/src/MigrationDescriber.js.map +1 -1
- package/dist/src/MigrationFilesManager.js +2 -2
- package/dist/src/MigrationFilesManager.js.map +1 -1
- package/dist/src/MigrationsResolver.js +3 -3
- package/dist/src/MigrationsResolver.js.map +1 -1
- package/dist/src/SchemaDiffer.d.ts.map +1 -1
- package/dist/src/SchemaDiffer.js +21 -2
- package/dist/src/SchemaDiffer.js.map +1 -1
- package/dist/src/SchemaMigrator.d.ts +1 -2
- package/dist/src/SchemaMigrator.d.ts.map +1 -1
- package/dist/src/SchemaMigrator.js +0 -1
- package/dist/src/SchemaMigrator.js.map +1 -1
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +3 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/modifications/ModificationHandler.d.ts +9 -5
- package/dist/src/modifications/ModificationHandler.d.ts.map +1 -1
- package/dist/src/modifications/ModificationHandler.js.map +1 -1
- package/dist/src/modifications/ModificationHandlerFactory.d.ts +2 -2
- package/dist/src/modifications/ModificationHandlerFactory.d.ts.map +1 -1
- package/dist/src/modifications/ModificationHandlerFactory.js +14 -0
- package/dist/src/modifications/ModificationHandlerFactory.js.map +1 -1
- package/dist/src/modifications/ModificationVersions.d.ts +4 -2
- package/dist/src/modifications/ModificationVersions.d.ts.map +1 -1
- package/dist/src/modifications/ModificationVersions.js +5 -3
- package/dist/src/modifications/ModificationVersions.js.map +1 -1
- package/dist/src/modifications/actions/CreateTargetModification.d.ts +21 -0
- package/dist/src/modifications/actions/CreateTargetModification.d.ts.map +1 -0
- package/dist/src/modifications/actions/CreateTargetModification.js +40 -0
- package/dist/src/modifications/actions/CreateTargetModification.js.map +1 -0
- package/dist/src/modifications/actions/CreateTriggerModification.d.ts +21 -0
- package/dist/src/modifications/actions/CreateTriggerModification.d.ts.map +1 -0
- package/dist/src/modifications/actions/CreateTriggerModification.js +40 -0
- package/dist/src/modifications/actions/CreateTriggerModification.js.map +1 -0
- package/dist/src/modifications/actions/RemoveTargetModification.d.ts +21 -0
- package/dist/src/modifications/actions/RemoveTargetModification.d.ts.map +1 -0
- package/dist/src/modifications/actions/RemoveTargetModification.js +40 -0
- package/dist/src/modifications/actions/RemoveTargetModification.js.map +1 -0
- package/dist/src/modifications/actions/RemoveTriggerModification.d.ts +21 -0
- package/dist/src/modifications/actions/RemoveTriggerModification.d.ts.map +1 -0
- package/dist/src/modifications/actions/RemoveTriggerModification.js +40 -0
- package/dist/src/modifications/actions/RemoveTriggerModification.js.map +1 -0
- package/dist/src/modifications/actions/UpdateTargetModification.d.ts +22 -0
- package/dist/src/modifications/actions/UpdateTargetModification.d.ts.map +1 -0
- package/dist/src/modifications/actions/UpdateTargetModification.js +46 -0
- package/dist/src/modifications/actions/UpdateTargetModification.js.map +1 -0
- package/dist/src/modifications/actions/UpdateTriggerModification.d.ts +21 -0
- package/dist/src/modifications/actions/UpdateTriggerModification.d.ts.map +1 -0
- package/dist/src/modifications/actions/UpdateTriggerModification.js +46 -0
- package/dist/src/modifications/actions/UpdateTriggerModification.js.map +1 -0
- package/dist/src/modifications/actions/index.d.ts +4 -0
- package/dist/src/modifications/actions/index.d.ts.map +1 -0
- package/dist/src/modifications/actions/index.js +20 -0
- package/dist/src/modifications/actions/index.js.map +1 -0
- package/dist/src/modifications/columns/UpdateColumnDefinitionModification.d.ts.map +1 -1
- package/dist/src/modifications/columns/UpdateColumnDefinitionModification.js +3 -3
- package/dist/src/modifications/columns/UpdateColumnDefinitionModification.js.map +1 -1
- package/dist/src/modifications/constraints/CreateUniqueConstraintModification.d.ts +3 -3
- package/dist/src/modifications/constraints/CreateUniqueConstraintModification.d.ts.map +1 -1
- package/dist/src/modifications/constraints/CreateUniqueConstraintModification.js +20 -32
- package/dist/src/modifications/constraints/CreateUniqueConstraintModification.js.map +1 -1
- package/dist/src/modifications/constraints/RemoveUniqueConstraintModification.d.ts +11 -5
- package/dist/src/modifications/constraints/RemoveUniqueConstraintModification.d.ts.map +1 -1
- package/dist/src/modifications/constraints/RemoveUniqueConstraintModification.js +37 -9
- package/dist/src/modifications/constraints/RemoveUniqueConstraintModification.js.map +1 -1
- package/dist/src/modifications/constraints/utils.d.ts +7 -0
- package/dist/src/modifications/constraints/utils.d.ts.map +1 -0
- package/dist/src/modifications/constraints/utils.js +33 -0
- package/dist/src/modifications/constraints/utils.js.map +1 -0
- package/dist/src/modifications/entities/CreateEntityModification.d.ts +4 -4
- package/dist/src/modifications/entities/CreateEntityModification.d.ts.map +1 -1
- package/dist/src/modifications/entities/CreateEntityModification.js +18 -14
- package/dist/src/modifications/entities/CreateEntityModification.js.map +1 -1
- package/dist/src/modifications/entities/CreateViewModification.d.ts +2 -2
- package/dist/src/modifications/entities/CreateViewModification.d.ts.map +1 -1
- package/dist/src/modifications/entities/CreateViewModification.js +14 -10
- package/dist/src/modifications/entities/CreateViewModification.js.map +1 -1
- package/dist/src/modifications/entities/RemoveEntityModification.d.ts +3 -4
- package/dist/src/modifications/entities/RemoveEntityModification.d.ts.map +1 -1
- package/dist/src/modifications/entities/RemoveEntityModification.js +3 -2
- package/dist/src/modifications/entities/RemoveEntityModification.js.map +1 -1
- package/dist/src/modifications/entities/ToggleEventLogModification.d.ts +2 -2
- package/dist/src/modifications/entities/ToggleEventLogModification.d.ts.map +1 -1
- package/dist/src/modifications/entities/ToggleEventLogModification.js +3 -3
- package/dist/src/modifications/entities/ToggleEventLogModification.js.map +1 -1
- package/dist/src/modifications/entities/UpdateEntityNameModification.d.ts +4 -5
- package/dist/src/modifications/entities/UpdateEntityNameModification.d.ts.map +1 -1
- package/dist/src/modifications/entities/UpdateEntityNameModification.js +3 -19
- package/dist/src/modifications/entities/UpdateEntityNameModification.js.map +1 -1
- package/dist/src/modifications/entities/UpdateEntityOrderByModification.d.ts +23 -0
- package/dist/src/modifications/entities/UpdateEntityOrderByModification.d.ts.map +1 -0
- package/dist/src/modifications/entities/UpdateEntityOrderByModification.js +63 -0
- package/dist/src/modifications/entities/UpdateEntityOrderByModification.js.map +1 -0
- package/dist/src/modifications/entities/index.d.ts +1 -0
- package/dist/src/modifications/entities/index.d.ts.map +1 -1
- package/dist/src/modifications/entities/index.js +1 -0
- package/dist/src/modifications/entities/index.js.map +1 -1
- package/dist/src/modifications/fields/RemoveFieldModification.js.map +1 -1
- package/dist/src/modifications/fields/UpdateFieldNameModification.d.ts +4 -5
- package/dist/src/modifications/fields/UpdateFieldNameModification.d.ts.map +1 -1
- package/dist/src/modifications/fields/UpdateFieldNameModification.js +18 -27
- package/dist/src/modifications/fields/UpdateFieldNameModification.js.map +1 -1
- package/dist/src/modifications/indexes/CreateIndexModification.d.ts +5 -5
- package/dist/src/modifications/indexes/CreateIndexModification.d.ts.map +1 -1
- package/dist/src/modifications/indexes/CreateIndexModification.js +24 -35
- package/dist/src/modifications/indexes/CreateIndexModification.js.map +1 -1
- package/dist/src/modifications/indexes/RemoveIndexModification.d.ts +12 -6
- package/dist/src/modifications/indexes/RemoveIndexModification.d.ts.map +1 -1
- package/dist/src/modifications/indexes/RemoveIndexModification.js +36 -10
- package/dist/src/modifications/indexes/RemoveIndexModification.js.map +1 -1
- package/dist/src/modifications/indexes/utils.d.ts +7 -0
- package/dist/src/modifications/indexes/utils.d.ts.map +1 -0
- package/dist/src/modifications/indexes/utils.js +33 -0
- package/dist/src/modifications/indexes/utils.js.map +1 -0
- package/dist/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.d.ts +3 -4
- package/dist/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.d.ts.map +1 -1
- package/dist/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.js +10 -10
- package/dist/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.js.map +1 -1
- package/dist/src/modifications/relations/ConvertOneToManyRelationModification.d.ts +3 -4
- package/dist/src/modifications/relations/ConvertOneToManyRelationModification.d.ts.map +1 -1
- package/dist/src/modifications/relations/ConvertOneToManyRelationModification.js +14 -12
- package/dist/src/modifications/relations/ConvertOneToManyRelationModification.js.map +1 -1
- package/dist/src/modifications/relations/CreateRelationModification.d.ts +3 -4
- package/dist/src/modifications/relations/CreateRelationModification.d.ts.map +1 -1
- package/dist/src/modifications/relations/CreateRelationModification.js +14 -26
- package/dist/src/modifications/relations/CreateRelationModification.js.map +1 -1
- package/dist/src/modifications/relations/ToggleJunctionEventLogModification.d.ts +3 -4
- package/dist/src/modifications/relations/ToggleJunctionEventLogModification.d.ts.map +1 -1
- package/dist/src/modifications/relations/ToggleJunctionEventLogModification.js +4 -5
- package/dist/src/modifications/relations/ToggleJunctionEventLogModification.js.map +1 -1
- package/dist/src/modifications/relations/UpdateRelationOnDeleteModification.d.ts +2 -2
- package/dist/src/modifications/relations/UpdateRelationOnDeleteModification.d.ts.map +1 -1
- package/dist/src/modifications/relations/UpdateRelationOnDeleteModification.js +20 -1
- package/dist/src/modifications/relations/UpdateRelationOnDeleteModification.js.map +1 -1
- package/dist/src/modifications/relations/helpers.d.ts +13 -0
- package/dist/src/modifications/relations/helpers.d.ts.map +1 -0
- package/dist/src/modifications/relations/helpers.js +29 -0
- package/dist/src/modifications/relations/helpers.js.map +1 -0
- package/dist/src/modifications/upgrade/RemoveIndexNamesModification.d.ts +19 -0
- package/dist/src/modifications/upgrade/RemoveIndexNamesModification.d.ts.map +1 -0
- package/dist/src/modifications/upgrade/RemoveIndexNamesModification.js +40 -0
- package/dist/src/modifications/upgrade/RemoveIndexNamesModification.js.map +1 -0
- package/dist/src/modifications/utils/createJunctionTable.d.ts +2 -3
- package/dist/src/modifications/utils/createJunctionTable.d.ts.map +1 -1
- package/dist/src/modifications/utils/createJunctionTable.js +4 -6
- package/dist/src/modifications/utils/createJunctionTable.js.map +1 -1
- package/dist/src/modifications/utils/schemaUpdateUtils.d.ts +2 -4
- package/dist/src/modifications/utils/schemaUpdateUtils.d.ts.map +1 -1
- package/dist/src/modifications/utils/schemaUpdateUtils.js +5 -20
- package/dist/src/modifications/utils/schemaUpdateUtils.js.map +1 -1
- package/dist/src/modifications/utils/stringArrayEquals.d.ts +2 -0
- package/dist/src/modifications/utils/stringArrayEquals.d.ts.map +1 -0
- package/dist/src/modifications/utils/stringArrayEquals.js +9 -0
- package/dist/src/modifications/utils/stringArrayEquals.js.map +1 -0
- package/dist/src/tsconfig.tsbuildinfo +1 -1
- package/dist/src/utils/PartialEntity.d.ts +5 -3
- package/dist/src/utils/PartialEntity.d.ts.map +1 -1
- package/dist/tests/cases/integration/convertOneHasManyToManyHasManyRelation.test.js +1 -1
- package/dist/tests/cases/integration/convertOneToManyRelation.test.js +5 -5
- package/dist/tests/cases/integration/convertOneToManyRelation.test.js.map +1 -1
- package/dist/tests/cases/integration/createAndDropIndex.test.js +4 -4
- package/dist/tests/cases/integration/createAndDropIndex.test.js.map +1 -1
- package/dist/tests/cases/integration/createEntity.test.js +6 -9
- package/dist/tests/cases/integration/createEntity.test.js.map +1 -1
- package/dist/tests/cases/integration/createManyHasMany.test.js +3 -3
- package/dist/tests/cases/integration/createManyHasOne.test.js +4 -4
- package/dist/tests/cases/integration/createManyHasOne.test.js.map +1 -1
- package/dist/tests/cases/integration/createOneHasMany.test.js +6 -9
- package/dist/tests/cases/integration/createOneHasMany.test.js.map +1 -1
- package/dist/tests/cases/integration/createOneHasOne.test.js +6 -6
- package/dist/tests/cases/integration/createRelationInverseSide.test.js +1 -1
- package/dist/tests/cases/integration/createRelationInverseSide.test.js.map +1 -1
- package/dist/tests/cases/integration/createView.test.js +6 -6
- package/dist/tests/cases/integration/removeField.test.js +6 -6
- package/dist/tests/cases/integration/removeField.test.js.map +1 -1
- package/dist/tests/cases/integration/updateColumnDefinition.test.js +4 -4
- package/dist/tests/cases/integration/updateEntityName.test.js +6 -5
- package/dist/tests/cases/integration/updateEntityName.test.js.map +1 -1
- package/dist/tests/cases/integration/updateEntityOrderBy.test.d.ts +2 -0
- package/dist/tests/cases/integration/updateEntityOrderBy.test.d.ts.map +1 -0
- package/dist/tests/cases/integration/updateEntityOrderBy.test.js +57 -0
- package/dist/tests/cases/integration/updateEntityOrderBy.test.js.map +1 -0
- package/dist/tests/cases/integration/updateFieldName.test.js +8 -7
- package/dist/tests/cases/integration/updateFieldName.test.js.map +1 -1
- package/dist/tests/cases/integration/updateRelationOnDelete.test.js +2 -1
- package/dist/tests/cases/integration/updateRelationOnDelete.test.js.map +1 -1
- package/dist/tests/cases/integration/updateView.test.js +18 -18
- package/dist/tests/scripts/checkCreateConsistentMigrations.js +1 -1
- 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 +12 -8
- package/dist/tests/src/tests.js.map +1 -1
- package/dist/tests/tsconfig.tsbuildinfo +1 -1
- package/package.json +11 -7
- package/src/MigrationCreator.ts +1 -1
- package/src/MigrationDescriber.ts +11 -9
- package/src/MigrationFilesManager.ts +1 -1
- package/src/MigrationsResolver.ts +1 -1
- package/src/SchemaDiffer.ts +23 -12
- package/src/SchemaMigrator.ts +1 -3
- package/src/index.ts +1 -1
- package/src/modifications/ModificationHandler.ts +10 -5
- package/src/modifications/ModificationHandlerFactory.ts +24 -11
- package/src/modifications/ModificationVersions.ts +4 -2
- package/src/modifications/actions/CreateTargetModification.ts +46 -0
- package/src/modifications/actions/CreateTriggerModification.ts +46 -0
- package/src/modifications/actions/RemoveTargetModification.ts +46 -0
- package/src/modifications/actions/RemoveTriggerModification.ts +46 -0
- package/src/modifications/actions/UpdateTargetModification.ts +51 -0
- package/src/modifications/actions/UpdateTriggerModification.ts +49 -0
- package/src/modifications/actions/index.ts +3 -0
- package/src/modifications/columns/UpdateColumnDefinitionModification.ts +1 -2
- package/src/modifications/constraints/CreateUniqueConstraintModification.ts +31 -40
- package/src/modifications/constraints/RemoveUniqueConstraintModification.ts +60 -15
- package/src/modifications/constraints/utils.ts +36 -0
- package/src/modifications/entities/CreateEntityModification.ts +9 -8
- package/src/modifications/entities/CreateViewModification.ts +4 -3
- package/src/modifications/entities/RemoveEntityModification.ts +5 -5
- package/src/modifications/entities/ToggleEventLogModification.ts +4 -3
- package/src/modifications/entities/UpdateEntityNameModification.ts +10 -25
- package/src/modifications/entities/UpdateEntityOrderByModification.ts +68 -0
- package/src/modifications/entities/index.ts +1 -0
- package/src/modifications/fields/RemoveFieldModification.ts +1 -1
- package/src/modifications/fields/UpdateFieldNameModification.ts +33 -39
- package/src/modifications/indexes/CreateIndexModification.ts +35 -41
- package/src/modifications/indexes/RemoveIndexModification.ts +57 -17
- package/src/modifications/indexes/utils.ts +30 -0
- package/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.ts +7 -19
- package/src/modifications/relations/ConvertOneToManyRelationModification.ts +21 -22
- package/src/modifications/relations/CreateRelationModification.ts +21 -49
- package/src/modifications/relations/ToggleJunctionEventLogModification.ts +4 -5
- package/src/modifications/relations/UpdateRelationOnDeleteModification.ts +30 -3
- package/src/modifications/relations/helpers.ts +39 -0
- package/src/modifications/upgrade/RemoveIndexNamesModification.ts +46 -0
- package/src/modifications/utils/createJunctionTable.ts +8 -8
- package/src/modifications/utils/schemaUpdateUtils.ts +5 -17
- package/src/modifications/utils/stringArrayEquals.ts +4 -0
- package/src/tsconfig.json +4 -12
- package/src/utils/PartialEntity.ts +7 -1
- package/tests/cases/integration/convertOneHasManyToManyHasManyRelation.test.ts +1 -1
- package/tests/cases/integration/convertOneToManyRelation.test.ts +5 -5
- package/tests/cases/integration/createAndDropIndex.test.ts +4 -4
- package/tests/cases/integration/createEntity.test.ts +6 -9
- package/tests/cases/integration/createManyHasMany.test.ts +3 -3
- package/tests/cases/integration/createManyHasOne.test.ts +4 -4
- package/tests/cases/integration/createOneHasMany.test.ts +6 -9
- package/tests/cases/integration/createOneHasOne.test.ts +6 -6
- package/tests/cases/integration/createRelationInverseSide.test.ts +1 -1
- package/tests/cases/integration/createView.test.ts +6 -6
- package/tests/cases/integration/removeField.test.ts +6 -6
- package/tests/cases/integration/updateColumnDefinition.test.ts +4 -4
- package/tests/cases/integration/updateEntityName.test.ts +7 -5
- package/tests/cases/integration/updateEntityOrderBy.test.ts +43 -0
- package/tests/cases/integration/updateFieldName.test.ts +9 -7
- package/tests/cases/integration/updateRelationOnDelete.test.ts +2 -1
- package/tests/cases/integration/updateView.test.ts +18 -18
- package/tests/scripts/checkCreateConsistentMigrations.ts +1 -1
- package/tests/src/tests.ts +18 -15
- package/tests/tsconfig.json +2 -6
- package/dist/src/MigrationVersionHelper.d.ts +0 -9
- package/dist/src/MigrationVersionHelper.d.ts.map +0 -1
- package/dist/src/MigrationVersionHelper.js +0 -45
- package/dist/src/MigrationVersionHelper.js.map +0 -1
- package/dist/src/modifications/utils/renameConstraintsHelper.d.ts +0 -8
- package/dist/src/modifications/utils/renameConstraintsHelper.d.ts.map +0 -1
- package/dist/src/modifications/utils/renameConstraintsHelper.js +0 -31
- package/dist/src/modifications/utils/renameConstraintsHelper.js.map +0 -1
- package/dist/src/modifications/utils/schemaMeta.d.ts +0 -8
- package/dist/src/modifications/utils/schemaMeta.d.ts.map +0 -1
- package/dist/src/modifications/utils/schemaMeta.js +0 -13
- package/dist/src/modifications/utils/schemaMeta.js.map +0 -1
- package/dist/tests/cases/integration/takenIndexName.test.d.ts +0 -2
- package/dist/tests/cases/integration/takenIndexName.test.d.ts.map +0 -1
- package/dist/tests/cases/integration/takenIndexName.test.js +0 -307
- package/dist/tests/cases/integration/takenIndexName.test.js.map +0 -1
- package/src/MigrationVersionHelper.ts +0 -46
- package/src/modifications/utils/renameConstraintsHelper.ts +0 -34
- package/src/modifications/utils/schemaMeta.ts +0 -18
- package/tests/cases/integration/takenIndexName.test.ts +0 -314
package/dist/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConvertOneHasManyToManyHasManyRelationModification.d.ts","sourceRoot":"","sources":["../../../../src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,
|
|
1
|
+
{"version":3,"file":"ConvertOneHasManyToManyHasManyRelationModification.d.ts","sourceRoot":"","sources":["../../../../src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAY,aAAa,EAA2C,MAAM,4BAA4B,CAAA;AAC7G,OAAO,EAEN,MAAM,EACN,mBAAmB,EAAE,mCAAmC,EACxD,0BAA0B,EAC1B,MAAM,wBAAwB,CAAA;AAK/B,OAAO,EAAgC,0BAA0B,EAAE,MAAM,iBAAiB,CAAA;AAG1F,qBAAa,yDAA0D,YAAW,mBAAmB,CAAC,sDAAsD,CAAC;IAI3J,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IALzB,OAAO,CAAC,eAAe,CAA0B;gBAG/B,IAAI,EAAE,sDAAsD,EAC5D,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,0BAA0B;IAa9C,SAAS,CAAC,OAAO,EAAE,gBAAgB,EAAE,EAAE,YAAY,EAAE,EAAE,mCAAmC,GAAG,IAAI;IAmBjG,gBAAgB,IAAI,aAAa;IASxC,QAAQ;;;IAMR,OAAO,CAAC,WAAW;CAQnB;AAED,eAAO,MAAM,kDAAkD,qJAG7D,CAAA;AAEF,MAAM,WAAW,sDAAsD;IACtE,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,0BAA0B,CAAA;IACtC,WAAW,CAAC,EAAE,KAAK,CAAC,0BAA0B,CAAA;CAC9C;AAED,qBAAa,4CAA6C,YAAW,MAAM;IAC1E,UAAU,CAAC,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;CAwBxD"}
|
package/dist/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.js
CHANGED
|
@@ -7,7 +7,7 @@ const ModificationHandler_1 = require("../ModificationHandler");
|
|
|
7
7
|
const schema_utils_1 = require("@contember/schema-utils");
|
|
8
8
|
const diffUtils_1 = require("../utils/diffUtils");
|
|
9
9
|
const createJunctionTable_1 = require("../utils/createJunctionTable");
|
|
10
|
-
const
|
|
10
|
+
const dbHelpers_1 = require("../../utils/dbHelpers");
|
|
11
11
|
const normalization_1 = require("./normalization");
|
|
12
12
|
const fields_1 = require("../fields");
|
|
13
13
|
class ConvertOneHasManyToManyHasManyRelationModificationHandler {
|
|
@@ -21,25 +21,25 @@ class ConvertOneHasManyToManyHasManyRelationModificationHandler {
|
|
|
21
21
|
newFieldName: this.data.owningSide.name,
|
|
22
22
|
}, schema, this.options);
|
|
23
23
|
}
|
|
24
|
-
createSql(builder) {
|
|
24
|
+
createSql(builder, { systemSchema }) {
|
|
25
25
|
const targetEntity = this.schema.model.entities[this.data.owningSide.target];
|
|
26
26
|
const { relation: oldRelation } = this.getRelation();
|
|
27
27
|
const entity = this.schema.model.entities[this.data.entityName];
|
|
28
|
-
(0, createJunctionTable_1.createJunctionTableSql)(builder,
|
|
28
|
+
(0, createJunctionTable_1.createJunctionTableSql)(builder, systemSchema, this.schema, entity, targetEntity, (0, normalization_1.normalizeManyHasManyRelation)(this.data.owningSide));
|
|
29
29
|
const joiningTable = this.data.owningSide.joiningTable;
|
|
30
30
|
builder.sql(`
|
|
31
|
-
INSERT INTO ${(0,
|
|
32
|
-
${(0,
|
|
33
|
-
${(0,
|
|
31
|
+
INSERT INTO ${(0, dbHelpers_1.wrapIdentifier)(joiningTable.tableName)} (
|
|
32
|
+
${(0, dbHelpers_1.wrapIdentifier)(joiningTable.joiningColumn.columnName)},
|
|
33
|
+
${(0, dbHelpers_1.wrapIdentifier)(joiningTable.inverseJoiningColumn.columnName)}
|
|
34
34
|
)
|
|
35
|
-
SELECT ${(0,
|
|
36
|
-
FROM ${(0,
|
|
37
|
-
WHERE ${(0,
|
|
35
|
+
SELECT ${(0, dbHelpers_1.wrapIdentifier)(entity.primaryColumn)}, ${(0, dbHelpers_1.wrapIdentifier)(oldRelation.joiningColumn.columnName)}
|
|
36
|
+
FROM ${(0, dbHelpers_1.wrapIdentifier)(entity.tableName)}
|
|
37
|
+
WHERE ${(0, dbHelpers_1.wrapIdentifier)(oldRelation.joiningColumn.columnName)} IS NOT NULL`);
|
|
38
38
|
builder.dropColumn(entity.tableName, oldRelation.joiningColumn.columnName);
|
|
39
39
|
}
|
|
40
40
|
getSchemaUpdater() {
|
|
41
41
|
const { entityName } = this.data;
|
|
42
|
-
return (0, schemaUpdateUtils_1.updateSchema)(this.subModification.getSchemaUpdater(), (0, schemaUpdateUtils_1.updateModel)((0, schemaUpdateUtils_1.updateEntity)(entityName, (0, schemaUpdateUtils_1.addField)((0, normalization_1.normalizeManyHasManyRelation)(this.data.owningSide)))), this.data.inverseSide ? (0, schemaUpdateUtils_1.updateModel)((0, schemaUpdateUtils_1.updateEntity)(this.data.owningSide.target, (0, schemaUpdateUtils_1.addField)(this.data.inverseSide))) : undefined
|
|
42
|
+
return (0, schemaUpdateUtils_1.updateSchema)(this.subModification.getSchemaUpdater(), (0, schemaUpdateUtils_1.updateModel)((0, schemaUpdateUtils_1.updateEntity)(entityName, (0, schemaUpdateUtils_1.addField)((0, normalization_1.normalizeManyHasManyRelation)(this.data.owningSide)))), this.data.inverseSide ? (0, schemaUpdateUtils_1.updateModel)((0, schemaUpdateUtils_1.updateEntity)(this.data.owningSide.target, (0, schemaUpdateUtils_1.addField)(this.data.inverseSide))) : undefined);
|
|
43
43
|
}
|
|
44
44
|
describe() {
|
|
45
45
|
return {
|
package/dist/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConvertOneHasManyToManyHasManyRelationModification.js","sourceRoot":"","sources":["../../../../src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.ts"],"names":[],"mappings":";;;AACA,8CAAiD;AACjD,
|
|
1
|
+
{"version":3,"file":"ConvertOneHasManyToManyHasManyRelationModification.js","sourceRoot":"","sources":["../../../../src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
import { MigrationBuilder } from '@contember/database-migrations';
|
|
2
2
|
import { Schema } from '@contember/schema';
|
|
3
3
|
import { SchemaUpdater } from '../utils/schemaUpdateUtils';
|
|
4
|
-
import { Differ, ModificationHandler, ModificationHandlerOptions } from '../ModificationHandler';
|
|
5
|
-
import { SchemaWithMeta } from '../utils/schemaMeta';
|
|
4
|
+
import { Differ, ModificationHandler, ModificationHandlerCreateSqlOptions, ModificationHandlerOptions } from '../ModificationHandler';
|
|
6
5
|
export declare class ConvertOneToManyRelationModificationHandler implements ModificationHandler<ConvertOneToManyRelationModificationData> {
|
|
7
6
|
private readonly data;
|
|
8
7
|
private readonly schema;
|
|
9
8
|
private readonly options;
|
|
10
9
|
private subModification;
|
|
11
|
-
constructor(data: ConvertOneToManyRelationModificationData, schema:
|
|
12
|
-
createSql(builder: MigrationBuilder): void;
|
|
10
|
+
constructor(data: ConvertOneToManyRelationModificationData, schema: Schema, options: ModificationHandlerOptions);
|
|
11
|
+
createSql(builder: MigrationBuilder, options: ModificationHandlerCreateSqlOptions): void;
|
|
13
12
|
getSchemaUpdater(): SchemaUpdater;
|
|
14
13
|
describe(): {
|
|
15
14
|
message: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConvertOneToManyRelationModification.d.ts","sourceRoot":"","sources":["../../../../src/modifications/relations/ConvertOneToManyRelationModification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,EAAS,MAAM,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,
|
|
1
|
+
{"version":3,"file":"ConvertOneToManyRelationModification.d.ts","sourceRoot":"","sources":["../../../../src/modifications/relations/ConvertOneToManyRelationModification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,EAAS,MAAM,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAwD,MAAM,4BAA4B,CAAA;AAChH,OAAO,EAEN,MAAM,EACN,mBAAmB,EACnB,mCAAmC,EACnC,0BAA0B,EAC1B,MAAM,wBAAwB,CAAA;AAO/B,qBAAa,2CAA4C,YAAW,mBAAmB,CAAC,wCAAwC,CAAC;IAI/H,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IALzB,OAAO,CAAC,eAAe,CAA0B;gBAG/B,IAAI,EAAE,wCAAwC,EAC9C,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,0BAA0B;IAgB9C,SAAS,CAAC,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,mCAAmC,GAAG,IAAI;IAoBxF,gBAAgB,IAAI,aAAa;IAkCxC,QAAQ;;;IAMR,OAAO,CAAC,WAAW;CAQnB;AAED,MAAM,WAAW,wCAAwC;IACxD,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,uBAAuB,CAAC,EAAE,MAAM,CAAA;CAChC;AAED,eAAO,MAAM,oCAAoC,yHAG/C,CAAA;AAEF,qBAAa,8BAA+B,YAAW,MAAM;IAC5D,UAAU,CAAC,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;CAoBxD"}
|
|
@@ -8,7 +8,7 @@ const schema_utils_1 = require("@contember/schema-utils");
|
|
|
8
8
|
const diffUtils_1 = require("../utils/diffUtils");
|
|
9
9
|
const NoopModification_1 = require("../NoopModification");
|
|
10
10
|
const fields_1 = require("../fields");
|
|
11
|
-
const
|
|
11
|
+
const dbHelpers_1 = require("../../utils/dbHelpers");
|
|
12
12
|
class ConvertOneToManyRelationModificationHandler {
|
|
13
13
|
constructor(data, schema, options) {
|
|
14
14
|
this.data = data;
|
|
@@ -23,23 +23,25 @@ class ConvertOneToManyRelationModificationHandler {
|
|
|
23
23
|
}, schema, this.options)
|
|
24
24
|
: new NoopModification_1.NoopModification();
|
|
25
25
|
}
|
|
26
|
-
createSql(builder) {
|
|
26
|
+
createSql(builder, options) {
|
|
27
27
|
const { entity, relation } = this.getRelation();
|
|
28
28
|
const columnName = relation.joiningColumn.columnName;
|
|
29
|
-
const
|
|
30
|
-
const
|
|
31
|
-
builder.
|
|
32
|
-
|
|
29
|
+
const tableNameId = (0, dbHelpers_1.wrapIdentifier)(entity.tableName);
|
|
30
|
+
const columnNameId = (0, dbHelpers_1.wrapIdentifier)(columnName);
|
|
31
|
+
builder.sql(`CREATE INDEX ON ${tableNameId} (${columnNameId})`);
|
|
32
|
+
const uniqueConstraintNames = options.databaseMetadata.getUniqueConstraintNames({
|
|
33
|
+
tableName: entity.tableName,
|
|
34
|
+
columnNames: [relation.joiningColumn.columnName],
|
|
33
35
|
});
|
|
34
|
-
const
|
|
35
|
-
|
|
36
|
-
|
|
36
|
+
for (const name of uniqueConstraintNames) {
|
|
37
|
+
builder.sql(`ALTER TABLE ${(0, dbHelpers_1.wrapIdentifier)(entity.tableName)} DROP CONSTRAINT ${(0, dbHelpers_1.wrapIdentifier)(name)}`);
|
|
38
|
+
}
|
|
39
|
+
options.invalidateDatabaseMetadata();
|
|
40
|
+
this.subModification.createSql(builder, options);
|
|
37
41
|
}
|
|
38
42
|
getSchemaUpdater() {
|
|
39
43
|
const { relation } = this.getRelation();
|
|
40
44
|
const { entityName, fieldName } = this.data;
|
|
41
|
-
const entity = this.schema.model.entities[this.data.entityName];
|
|
42
|
-
const field = entity.fields[fieldName];
|
|
43
45
|
return (0, schemaUpdateUtils_1.updateSchema)((0, schemaUpdateUtils_1.updateModel)((0, schemaUpdateUtils_1.updateEntity)(entityName, (0, schemaUpdateUtils_1.updateField)(fieldName, ({ field: { type, orphanRemoval, ...field } }) => ({
|
|
44
46
|
type: schema_1.Model.RelationType.ManyHasOne,
|
|
45
47
|
...field,
|
|
@@ -47,7 +49,7 @@ class ConvertOneToManyRelationModificationHandler {
|
|
|
47
49
|
(0, schemaUpdateUtils_1.updateModel)((0, schemaUpdateUtils_1.updateEntity)(relation.target, (0, schemaUpdateUtils_1.updateField)(this.data.newInverseSideFieldName, ({ field: { type, nullable, ...field } }) => ({
|
|
48
50
|
type: schema_1.Model.RelationType.OneHasMany,
|
|
49
51
|
...field,
|
|
50
|
-
})))) : undefined
|
|
52
|
+
})))) : undefined);
|
|
51
53
|
}
|
|
52
54
|
describe() {
|
|
53
55
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConvertOneToManyRelationModification.js","sourceRoot":"","sources":["../../../../src/modifications/relations/ConvertOneToManyRelationModification.ts"],"names":[],"mappings":";;;AACA,8CAAiD;AACjD,
|
|
1
|
+
{"version":3,"file":"ConvertOneToManyRelationModification.js","sourceRoot":"","sources":["../../../../src/modifications/relations/ConvertOneToManyRelationModification.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
import { Model, Schema } from '@contember/schema';
|
|
2
2
|
import { MigrationBuilder } from '@contember/database-migrations';
|
|
3
3
|
import { SchemaUpdater } from '../utils/schemaUpdateUtils';
|
|
4
|
-
import { Differ, ModificationHandler, ModificationHandlerOptions } from '../ModificationHandler';
|
|
4
|
+
import { Differ, ModificationHandler, ModificationHandlerCreateSqlOptions, ModificationHandlerOptions } from '../ModificationHandler';
|
|
5
5
|
import { PartialManyHasManyRelation } from './normalization';
|
|
6
|
-
import { SchemaWithMeta } from '../utils/schemaMeta';
|
|
7
6
|
export declare class CreateRelationModificationHandler implements ModificationHandler<CreateRelationModificationData> {
|
|
8
7
|
private readonly data;
|
|
9
8
|
private readonly schema;
|
|
10
9
|
private readonly options;
|
|
11
|
-
constructor(data: CreateRelationModificationData, schema:
|
|
12
|
-
createSql(builder: MigrationBuilder): void;
|
|
10
|
+
constructor(data: CreateRelationModificationData, schema: Schema, options: ModificationHandlerOptions);
|
|
11
|
+
createSql(builder: MigrationBuilder, { databaseMetadata, systemSchema, invalidateDatabaseMetadata, }: ModificationHandlerCreateSqlOptions): void;
|
|
13
12
|
getSchemaUpdater(): SchemaUpdater;
|
|
14
13
|
describe({ createdEntities }: {
|
|
15
14
|
createdEntities: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateRelationModification.d.ts","sourceRoot":"","sources":["../../../../src/modifications/relations/CreateRelationModification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"CreateRelationModification.d.ts","sourceRoot":"","sources":["../../../../src/modifications/relations/CreateRelationModification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAEjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,EAAY,aAAa,EAA2C,MAAM,4BAA4B,CAAA;AAC7G,OAAO,EAEN,MAAM,EACN,mBAAmB,EAAE,mCAAmC,EACxD,0BAA0B,EAC1B,MAAM,wBAAwB,CAAA;AAK/B,OAAO,EAAgC,0BAA0B,EAAE,MAAM,iBAAiB,CAAA;AAK1F,qBAAa,iCAAkC,YAAW,mBAAmB,CAAC,8BAA8B,CAAC;IAG3G,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAFP,IAAI,EAAE,8BAA8B,EACpC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,0BAA0B;IAG9C,SAAS,CAAC,OAAO,EAAE,gBAAgB,EAAE,EAC3C,gBAAgB,EAChB,YAAY,EACZ,0BAA0B,GAC1B,EAAE,mCAAmC,GAAG,IAAI;IAwCtC,gBAAgB,IAAI,aAAa;IAWxC,QAAQ,CAAC,EAAE,eAAe,EAAE,EAAE;QAAE,eAAe,EAAE,MAAM,EAAE,CAAA;KAAE;;;;IAU3D,OAAO,CAAC,uBAAuB;CAM/B;AAGD,oBAAY,8BAA8B,GAAG;IAC5C,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EACP,KAAK,CAAC,kBAAkB,GACxB,KAAK,CAAC,uBAAuB,GAC7B,0BAA0B,CAAA;IAC7B,WAAW,CAAC,EAAE,KAAK,CAAC,kBAAkB,CAAA;CACtC,CAAA;AAED,eAAO,MAAM,0BAA0B,qGAGrC,CAAA;AAEF,qBAAa,oBAAqB,YAAW,MAAM;IAClD,UAAU,CAAC,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;CAkBxD"}
|
|
@@ -10,14 +10,15 @@ const diffUtils_1 = require("../utils/diffUtils");
|
|
|
10
10
|
const getPrimaryColumnType_1 = require("../utils/getPrimaryColumnType");
|
|
11
11
|
const createJunctionTable_1 = require("../utils/createJunctionTable");
|
|
12
12
|
const normalization_1 = require("./normalization");
|
|
13
|
-
const
|
|
13
|
+
const helpers_1 = require("./helpers");
|
|
14
|
+
const dbHelpers_1 = require("../../utils/dbHelpers");
|
|
14
15
|
class CreateRelationModificationHandler {
|
|
15
16
|
constructor(data, schema, options) {
|
|
16
17
|
this.data = data;
|
|
17
18
|
this.schema = schema;
|
|
18
19
|
this.options = options;
|
|
19
20
|
}
|
|
20
|
-
createSql(builder) {
|
|
21
|
+
createSql(builder, { databaseMetadata, systemSchema, invalidateDatabaseMetadata, }) {
|
|
21
22
|
const entity = this.schema.model.entities[this.data.entityName];
|
|
22
23
|
if (entity.view) {
|
|
23
24
|
return;
|
|
@@ -30,49 +31,36 @@ class CreateRelationModificationHandler {
|
|
|
30
31
|
notNull: !relation.nullable,
|
|
31
32
|
},
|
|
32
33
|
});
|
|
33
|
-
|
|
34
|
-
builder.addConstraint(entity.tableName, fkName, {
|
|
35
|
-
foreignKeys: {
|
|
36
|
-
columns: relation.joiningColumn.columnName,
|
|
37
|
-
references: `"${targetEntity.tableName}"("${targetEntity.primaryColumn}")`,
|
|
38
|
-
onDelete: 'NO ACTION',
|
|
39
|
-
},
|
|
40
|
-
deferrable: true,
|
|
41
|
-
deferred: false,
|
|
42
|
-
});
|
|
34
|
+
(0, helpers_1.addForeignKeyConstraint)({ builder, entity, targetEntity, relation, databaseMetadata, invalidateDatabaseMetadata });
|
|
43
35
|
};
|
|
44
36
|
(0, schema_utils_1.acceptRelationTypeVisitor)(this.schema.model, entity, this.getNormalizedOwningSide(), {
|
|
45
37
|
visitManyHasOne: ({ relation }) => {
|
|
46
38
|
createOwningSide(relation);
|
|
47
39
|
const columnName = relation.joiningColumn.columnName;
|
|
48
|
-
const
|
|
49
|
-
const
|
|
50
|
-
builder.
|
|
51
|
-
|
|
52
|
-
});
|
|
40
|
+
const tableNameId = (0, dbHelpers_1.wrapIdentifier)(entity.tableName);
|
|
41
|
+
const columnNameId = (0, dbHelpers_1.wrapIdentifier)(columnName);
|
|
42
|
+
builder.sql(`CREATE INDEX ON ${tableNameId} (${columnNameId})`);
|
|
43
|
+
invalidateDatabaseMetadata();
|
|
53
44
|
},
|
|
54
45
|
visitOneHasMany: () => { },
|
|
55
46
|
visitOneHasOneOwning: ({ relation }) => {
|
|
56
47
|
createOwningSide(relation);
|
|
57
|
-
const
|
|
58
|
-
|
|
48
|
+
const tableNameId = (0, dbHelpers_1.wrapIdentifier)(entity.tableName);
|
|
49
|
+
const columnNameId = (0, dbHelpers_1.wrapIdentifier)(relation.joiningColumn.columnName);
|
|
50
|
+
builder.sql(`ALTER TABLE ${tableNameId} ADD UNIQUE (${columnNameId})`);
|
|
51
|
+
invalidateDatabaseMetadata();
|
|
59
52
|
},
|
|
60
53
|
visitOneHasOneInverse: () => { },
|
|
61
54
|
visitManyHasManyOwning: ({ relation }) => {
|
|
62
|
-
(0, createJunctionTable_1.createJunctionTableSql)(builder,
|
|
55
|
+
(0, createJunctionTable_1.createJunctionTableSql)(builder, systemSchema, this.schema, entity, targetEntity, relation);
|
|
63
56
|
},
|
|
64
57
|
visitManyHasManyInverse: () => { },
|
|
65
58
|
});
|
|
66
59
|
}
|
|
67
60
|
getSchemaUpdater() {
|
|
68
|
-
const entity = this.schema.model.entities[this.data.entityName];
|
|
69
61
|
return (0, schemaUpdateUtils_1.updateSchema)((0, schemaUpdateUtils_1.updateModel)((0, schemaUpdateUtils_1.updateEntity)(this.data.entityName, (0, schemaUpdateUtils_1.addField)(this.getNormalizedOwningSide())), this.data.inverseSide !== undefined
|
|
70
62
|
? (0, schemaUpdateUtils_1.updateEntity)(this.data.owningSide.target, (0, schemaUpdateUtils_1.addField)(this.data.inverseSide))
|
|
71
|
-
: undefined)
|
|
72
|
-
? (0, schemaUpdateUtils_1.addTakenIndexName)(schema_utils_1.NamingHelper.createForeignKeyIndexName(entity.tableName, this.data.owningSide.joiningColumn.columnName))
|
|
73
|
-
: undefined, this.data.owningSide.type === schema_1.Model.RelationType.ManyHasMany && (0, schema_utils_1.isOwningRelation)(this.data.owningSide)
|
|
74
|
-
? (0, schemaUpdateUtils_1.addTakenIndexName)(schema_utils_1.NamingHelper.createJunctionTablePrimaryConstraintName(this.data.owningSide.joiningTable.tableName))
|
|
75
|
-
: undefined);
|
|
63
|
+
: undefined));
|
|
76
64
|
}
|
|
77
65
|
describe({ createdEntities }) {
|
|
78
66
|
const notNull = (0, isIt_1.isIt)(this.data.owningSide, 'nullable') && !this.data.owningSide.nullable;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateRelationModification.js","sourceRoot":"","sources":["../../../../src/modifications/relations/CreateRelationModification.ts"],"names":[],"mappings":";;;AAAA,8CAAiD;AACjD,
|
|
1
|
+
{"version":3,"file":"CreateRelationModification.js","sourceRoot":"","sources":["../../../../src/modifications/relations/CreateRelationModification.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import { MigrationBuilder } from '@contember/database-migrations';
|
|
2
2
|
import { Schema } from '@contember/schema';
|
|
3
3
|
import { SchemaUpdater } from '../utils/schemaUpdateUtils';
|
|
4
|
-
import { Differ, ModificationHandler,
|
|
4
|
+
import { Differ, ModificationHandler, ModificationHandlerCreateSqlOptions } from '../ModificationHandler';
|
|
5
5
|
export declare class ToggleJunctionEventLogModificationHandler implements ModificationHandler<ToggleJunctionEventLogModificationData> {
|
|
6
6
|
private readonly data;
|
|
7
7
|
private readonly schema;
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
createSql(builder: MigrationBuilder): void;
|
|
8
|
+
constructor(data: ToggleJunctionEventLogModificationData, schema: Schema);
|
|
9
|
+
createSql(builder: MigrationBuilder, { systemSchema }: ModificationHandlerCreateSqlOptions): void;
|
|
11
10
|
getSchemaUpdater(): SchemaUpdater;
|
|
12
11
|
describe(): {
|
|
13
12
|
message: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToggleJunctionEventLogModification.d.ts","sourceRoot":"","sources":["../../../../src/modifications/relations/ToggleJunctionEventLogModification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,EAAS,MAAM,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,aAAa,EAA0C,MAAM,4BAA4B,CAAA;AAClG,OAAO,EAEN,MAAM,EACN,mBAAmB,EACnB,
|
|
1
|
+
{"version":3,"file":"ToggleJunctionEventLogModification.d.ts","sourceRoot":"","sources":["../../../../src/modifications/relations/ToggleJunctionEventLogModification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,EAAS,MAAM,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,aAAa,EAA0C,MAAM,4BAA4B,CAAA;AAClG,OAAO,EAEN,MAAM,EACN,mBAAmB,EACnB,mCAAmC,EACnC,MAAM,wBAAwB,CAAA;AAW/B,qBAAa,yCAA0C,YAAW,mBAAmB,CAAC,sCAAsC,CAAC;IAG3H,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,IAAI,EAAE,sCAAsC,EAC5C,MAAM,EAAE,MAAM;IAIzB,SAAS,CAAC,OAAO,EAAE,gBAAgB,EAAE,EAAE,YAAY,EAAE,EAAE,mCAAmC,GAAG,IAAI;IAoBjG,gBAAgB,IAAI,aAAa;IAoBxC,QAAQ;;;CAKR;AAED,MAAM,WAAW,sCAAsC;IACtD,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,OAAO,CAAA;CAChB;AAED,eAAO,MAAM,kCAAkC,qHAG7C,CAAA;AAEF,qBAAa,4BAA6B,YAAW,MAAM;IACzD,UAAU,CAAC,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;CAqBzD"}
|
|
@@ -9,12 +9,11 @@ const schema_utils_1 = require("@contember/schema-utils");
|
|
|
9
9
|
const diffUtils_1 = require("../utils/diffUtils");
|
|
10
10
|
const isIt_1 = require("../../utils/isIt");
|
|
11
11
|
class ToggleJunctionEventLogModificationHandler {
|
|
12
|
-
constructor(data, schema
|
|
12
|
+
constructor(data, schema) {
|
|
13
13
|
this.data = data;
|
|
14
14
|
this.schema = schema;
|
|
15
|
-
this.options = options;
|
|
16
15
|
}
|
|
17
|
-
createSql(builder) {
|
|
16
|
+
createSql(builder, { systemSchema }) {
|
|
18
17
|
const entity = this.schema.model.entities[this.data.entityName];
|
|
19
18
|
const relation = entity.fields[this.data.fieldName];
|
|
20
19
|
if (!(0, schema_utils_1.isRelation)(relation) || relation.type !== schema_1.Model.RelationType.ManyHasMany || !(0, schema_utils_1.isOwningRelation)(relation)) {
|
|
@@ -26,8 +25,8 @@ class ToggleJunctionEventLogModificationHandler {
|
|
|
26
25
|
relation.joiningTable.joiningColumn.columnName,
|
|
27
26
|
relation.joiningTable.inverseJoiningColumn.columnName,
|
|
28
27
|
];
|
|
29
|
-
(0, sqlUpdateUtils_1.createEventTrigger)(builder,
|
|
30
|
-
(0, sqlUpdateUtils_1.createEventTrxTrigger)(builder,
|
|
28
|
+
(0, sqlUpdateUtils_1.createEventTrigger)(builder, systemSchema, tableName, primaryColumns);
|
|
29
|
+
(0, sqlUpdateUtils_1.createEventTrxTrigger)(builder, systemSchema, tableName);
|
|
31
30
|
}
|
|
32
31
|
else {
|
|
33
32
|
(0, sqlUpdateUtils_1.dropEventTrigger)(builder, tableName);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToggleJunctionEventLogModification.js","sourceRoot":"","sources":["../../../../src/modifications/relations/ToggleJunctionEventLogModification.ts"],"names":[],"mappings":";;;AACA,8CAAiD;AACjD,kEAAkG;AAClG,gEAK+B;AAC/B,4DAKgC;AAChC,0DAAsE;AACtE,kDAAoD;AACpD,2CAAuC;AAEvC,MAAa,yCAAyC;IAErD,YACkB,IAA4C,EAC5C,MAAc
|
|
1
|
+
{"version":3,"file":"ToggleJunctionEventLogModification.js","sourceRoot":"","sources":["../../../../src/modifications/relations/ToggleJunctionEventLogModification.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { MigrationBuilder } from '@contember/database-migrations';
|
|
2
2
|
import { Model, Schema } from '@contember/schema';
|
|
3
3
|
import { SchemaUpdater } from '../utils/schemaUpdateUtils';
|
|
4
|
-
import { Differ, ModificationHandler } from '../ModificationHandler';
|
|
4
|
+
import { Differ, ModificationHandler, ModificationHandlerCreateSqlOptions } from '../ModificationHandler';
|
|
5
5
|
export declare class UpdateRelationOnDeleteModificationHandler implements ModificationHandler<UpdateRelationOnDeleteModificationData> {
|
|
6
6
|
private readonly data;
|
|
7
7
|
private readonly schema;
|
|
8
8
|
constructor(data: UpdateRelationOnDeleteModificationData, schema: Schema);
|
|
9
|
-
createSql(builder: MigrationBuilder): void;
|
|
9
|
+
createSql(builder: MigrationBuilder, { databaseMetadata, invalidateDatabaseMetadata }: ModificationHandlerCreateSqlOptions): void;
|
|
10
10
|
getSchemaUpdater(): SchemaUpdater;
|
|
11
11
|
describe(): {
|
|
12
12
|
message: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UpdateRelationOnDeleteModification.d.ts","sourceRoot":"","sources":["../../../../src/modifications/relations/UpdateRelationOnDeleteModification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,aAAa,EAA0C,MAAM,4BAA4B,CAAA;AAClG,OAAO,
|
|
1
|
+
{"version":3,"file":"UpdateRelationOnDeleteModification.d.ts","sourceRoot":"","sources":["../../../../src/modifications/relations/UpdateRelationOnDeleteModification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,aAAa,EAA0C,MAAM,4BAA4B,CAAA;AAClG,OAAO,EAEN,MAAM,EACN,mBAAmB,EACnB,mCAAmC,EACnC,MAAM,wBAAwB,CAAA;AAM/B,qBAAa,yCAA0C,YAAW,mBAAmB,CAAC,sCAAsC,CAAC;IAE3H,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,IAAI,EAAE,sCAAsC,EAC5C,MAAM,EAAE,MAAM;IAGzB,SAAS,CAAC,OAAO,EAAE,gBAAgB,EAAE,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,EAAE,mCAAmC,GAAG,IAAI;IAmBjI,gBAAgB,IAAI,aAAa;IAaxC,QAAQ;;;CAGR;AAED,MAAM,WAAW,sCAAsC;IACtD,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAA;CACxB;AAED,eAAO,MAAM,kCAAkC,qHAG7C,CAAA;AAEF,qBAAa,4BAA6B,YAAW,MAAM;IAC1D,UAAU,CAAC,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;CAiBxD"}
|
|
@@ -5,12 +5,31 @@ const schemaUpdateUtils_1 = require("../utils/schemaUpdateUtils");
|
|
|
5
5
|
const ModificationHandler_1 = require("../ModificationHandler");
|
|
6
6
|
const isIt_1 = require("../../utils/isIt");
|
|
7
7
|
const diffUtils_1 = require("../utils/diffUtils");
|
|
8
|
+
const schema_utils_1 = require("@contember/schema-utils");
|
|
9
|
+
const helpers_1 = require("./helpers");
|
|
8
10
|
class UpdateRelationOnDeleteModificationHandler {
|
|
9
11
|
constructor(data, schema) {
|
|
10
12
|
this.data = data;
|
|
11
13
|
this.schema = schema;
|
|
12
14
|
}
|
|
13
|
-
createSql(builder
|
|
15
|
+
createSql(builder, { databaseMetadata, invalidateDatabaseMetadata }) {
|
|
16
|
+
const entity = this.schema.model.entities[this.data.entityName];
|
|
17
|
+
if (entity.view) {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
(0, schema_utils_1.acceptRelationTypeVisitor)(this.schema.model, entity, this.data.fieldName, {
|
|
21
|
+
visitManyHasOne: ({ entity, relation, targetEntity }) => {
|
|
22
|
+
(0, helpers_1.addForeignKeyConstraint)({ builder, entity, targetEntity, relation, recreate: true, databaseMetadata, invalidateDatabaseMetadata });
|
|
23
|
+
},
|
|
24
|
+
visitOneHasOneOwning: ({ entity, relation, targetEntity }) => {
|
|
25
|
+
(0, helpers_1.addForeignKeyConstraint)({ builder, entity, targetEntity, relation, recreate: true, databaseMetadata, invalidateDatabaseMetadata });
|
|
26
|
+
},
|
|
27
|
+
visitOneHasMany: () => { },
|
|
28
|
+
visitOneHasOneInverse: () => { },
|
|
29
|
+
visitManyHasManyOwning: () => { },
|
|
30
|
+
visitManyHasManyInverse: () => { },
|
|
31
|
+
});
|
|
32
|
+
}
|
|
14
33
|
getSchemaUpdater() {
|
|
15
34
|
const { entityName, fieldName, onDelete } = this.data;
|
|
16
35
|
return (0, schemaUpdateUtils_1.updateModel)((0, schemaUpdateUtils_1.updateEntity)(entityName, (0, schemaUpdateUtils_1.updateField)(fieldName, ({ field }) => ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UpdateRelationOnDeleteModification.js","sourceRoot":"","sources":["../../../../src/modifications/relations/UpdateRelationOnDeleteModification.ts"],"names":[],"mappings":";;;AAEA,kEAAkG;AAClG,
|
|
1
|
+
{"version":3,"file":"UpdateRelationOnDeleteModification.js","sourceRoot":"","sources":["../../../../src/modifications/relations/UpdateRelationOnDeleteModification.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { MigrationBuilder } from '@contember/database-migrations';
|
|
2
|
+
import { Model } from '@contember/schema';
|
|
3
|
+
import { SchemaDatabaseMetadata } from '@contember/schema-utils';
|
|
4
|
+
export declare const addForeignKeyConstraint: ({ builder, entity, relation, targetEntity, recreate, databaseMetadata, invalidateDatabaseMetadata }: {
|
|
5
|
+
recreate?: boolean | undefined;
|
|
6
|
+
builder: MigrationBuilder;
|
|
7
|
+
entity: Model.Entity;
|
|
8
|
+
targetEntity: Model.Entity;
|
|
9
|
+
relation: Model.OneHasOneOwningRelation | Model.ManyHasOneRelation;
|
|
10
|
+
databaseMetadata: SchemaDatabaseMetadata;
|
|
11
|
+
invalidateDatabaseMetadata: () => void;
|
|
12
|
+
}) => void;
|
|
13
|
+
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../src/modifications/relations/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAEzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AAEhE,eAAO,MAAM,uBAAuB;;aAE1B,gBAAgB;YACjB,MAAM,MAAM;kBACN,MAAM,MAAM;cAChB,MAAM,uBAAuB,GAAG,MAAM,kBAAkB;sBAChD,sBAAsB;gCACZ,MAAM,IAAI;UA0BtC,CAAA"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addForeignKeyConstraint = void 0;
|
|
4
|
+
const schema_1 = require("@contember/schema");
|
|
5
|
+
const dbHelpers_1 = require("../../utils/dbHelpers");
|
|
6
|
+
const addForeignKeyConstraint = ({ builder, entity, relation, targetEntity, recreate = false, databaseMetadata, invalidateDatabaseMetadata }) => {
|
|
7
|
+
if (recreate) {
|
|
8
|
+
const fkNames = databaseMetadata.getForeignKeyConstraintNames({
|
|
9
|
+
fromTable: entity.tableName,
|
|
10
|
+
fromColumn: relation.joiningColumn.columnName,
|
|
11
|
+
toTable: targetEntity.tableName,
|
|
12
|
+
toColumn: targetEntity.primaryColumn,
|
|
13
|
+
});
|
|
14
|
+
for (const name of fkNames) {
|
|
15
|
+
builder.sql(`ALTER TABLE ${(0, dbHelpers_1.wrapIdentifier)(entity.tableName)} DROP CONSTRAINT ${(0, dbHelpers_1.wrapIdentifier)(name)}`);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
const onDelete = {
|
|
19
|
+
[schema_1.Model.OnDelete.setNull]: 'SET NULL',
|
|
20
|
+
[schema_1.Model.OnDelete.cascade]: 'CASCADE',
|
|
21
|
+
[schema_1.Model.OnDelete.restrict]: 'NO ACTION',
|
|
22
|
+
}[relation.joiningColumn.onDelete];
|
|
23
|
+
builder.sql(`ALTER TABLE ${(0, dbHelpers_1.wrapIdentifier)(entity.tableName)}
|
|
24
|
+
ADD FOREIGN KEY (${(0, dbHelpers_1.wrapIdentifier)(relation.joiningColumn.columnName)})
|
|
25
|
+
REFERENCES ${(0, dbHelpers_1.wrapIdentifier)(targetEntity.tableName)}(${(0, dbHelpers_1.wrapIdentifier)(targetEntity.primaryColumn)}) ON DELETE ${onDelete} DEFERRABLE INITIALLY IMMEDIATE`);
|
|
26
|
+
invalidateDatabaseMetadata();
|
|
27
|
+
};
|
|
28
|
+
exports.addForeignKeyConstraint = addForeignKeyConstraint;
|
|
29
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../src/modifications/relations/helpers.ts"],"names":[],"mappings":";;;AACA,8CAAyC;AACzC,qDAAsD;AAG/C,MAAM,uBAAuB,GAAG,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,GAAG,KAAK,EAAE,gBAAgB,EAAE,0BAA0B,EAQhJ,EAAE,EAAE;IACJ,IAAI,QAAQ,EAAE;QACb,MAAM,OAAO,GAAG,gBAAgB,CAAC,4BAA4B,CAC5D;YACC,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,UAAU,EAAE,QAAQ,CAAC,aAAa,CAAC,UAAU;YAC7C,OAAO,EAAE,YAAY,CAAC,SAAS;YAC/B,QAAQ,EAAE,YAAY,CAAC,aAAa;SACpC,CACD,CAAA;QACD,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE;YAC3B,OAAO,CAAC,GAAG,CAAC,eAAe,IAAA,0BAAc,EAAC,MAAM,CAAC,SAAS,CAAC,oBAAoB,IAAA,0BAAc,EAAC,IAAI,CAAC,EAAE,CAAC,CAAA;SACtG;KACD;IAED,MAAM,QAAQ,GAAI;QACjB,CAAC,cAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,UAAU;QACpC,CAAC,cAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS;QACnC,CAAC,cAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,WAAW;KAC5B,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;IAC5C,OAAO,CAAC,GAAG,CAAC,eAAe,IAAA,0BAAc,EAAC,MAAM,CAAC,SAAS,CAAC;qBACvC,IAAA,0BAAc,EAAC,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC;eACvD,IAAA,0BAAc,EAAC,YAAY,CAAC,SAAS,CAAC,IAAI,IAAA,0BAAc,EAAC,YAAY,CAAC,aAAa,CAAC,eAAe,QAAQ,iCAAiC,CAAC,CAAA;IAE3J,0BAA0B,EAAE,CAAA;AAC7B,CAAC,CAAA;AAjCY,QAAA,uBAAuB,2BAiCnC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Schema } from '@contember/schema';
|
|
2
|
+
import { SchemaUpdater } from '../utils/schemaUpdateUtils';
|
|
3
|
+
import { Differ, ModificationHandler } from '../ModificationHandler';
|
|
4
|
+
export declare class RemoveIndexNamesModificationHandler implements ModificationHandler<RemoveIndexNamesModificationData> {
|
|
5
|
+
constructor();
|
|
6
|
+
createSql(): void;
|
|
7
|
+
getSchemaUpdater(): SchemaUpdater;
|
|
8
|
+
describe(): {
|
|
9
|
+
message: string;
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
export declare const removeIndexNamesModification: import("../ModificationHandler").ModificationType<"removeIndexNames", unknown>;
|
|
13
|
+
export declare type RemoveIndexNamesModificationData = {};
|
|
14
|
+
export declare class RemoveIndexNamesDiffer implements Differ {
|
|
15
|
+
createDiff(originalSchema: Schema): {
|
|
16
|
+
modification: string;
|
|
17
|
+
}[];
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=RemoveIndexNamesModification.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RemoveIndexNamesModification.d.ts","sourceRoot":"","sources":["../../../../src/modifications/upgrade/RemoveIndexNamesModification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EAAE,aAAa,EAAkC,MAAM,4BAA4B,CAAA;AAC1F,OAAO,EAA0B,MAAM,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAE5F,qBAAa,mCAAoC,YAAW,mBAAmB,CAAC,gCAAgC,CAAC;;IAGzG,SAAS,IAAI,IAAI;IAGjB,gBAAgB,IAAI,aAAa;IAYxC,QAAQ;;;CAGR;AAED,eAAO,MAAM,4BAA4B,gFAGvC,CAAA;AAGF,oBAAY,gCAAgC,GAAG,EAAE,CAAA;AAEjD,qBAAa,sBAAuB,YAAW,MAAM;IACpD,UAAU,CAAC,cAAc,EAAE,MAAM;;;CASjC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RemoveIndexNamesDiffer = exports.removeIndexNamesModification = exports.RemoveIndexNamesModificationHandler = void 0;
|
|
4
|
+
const schemaUpdateUtils_1 = require("../utils/schemaUpdateUtils");
|
|
5
|
+
const ModificationHandler_1 = require("../ModificationHandler");
|
|
6
|
+
class RemoveIndexNamesModificationHandler {
|
|
7
|
+
constructor() { }
|
|
8
|
+
createSql() {
|
|
9
|
+
}
|
|
10
|
+
getSchemaUpdater() {
|
|
11
|
+
return (0, schemaUpdateUtils_1.updateModel)((0, schemaUpdateUtils_1.updateEveryEntity)(({ entity }) => {
|
|
12
|
+
return {
|
|
13
|
+
...entity,
|
|
14
|
+
indexes: entity.indexes.map(({ name, ...other }) => other),
|
|
15
|
+
unique: entity.unique.map(({ name, ...other }) => other),
|
|
16
|
+
};
|
|
17
|
+
}));
|
|
18
|
+
}
|
|
19
|
+
describe() {
|
|
20
|
+
return { message: `Schema upgrade: remove names of indexes and unique constraints` };
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
exports.RemoveIndexNamesModificationHandler = RemoveIndexNamesModificationHandler;
|
|
24
|
+
exports.removeIndexNamesModification = (0, ModificationHandler_1.createModificationType)({
|
|
25
|
+
id: 'removeIndexNames',
|
|
26
|
+
handler: RemoveIndexNamesModificationHandler,
|
|
27
|
+
});
|
|
28
|
+
class RemoveIndexNamesDiffer {
|
|
29
|
+
createDiff(originalSchema) {
|
|
30
|
+
const hasNames = !!Object.values(originalSchema.model.entities).find(it => {
|
|
31
|
+
return it.indexes.find(it => !!it.name) || it.unique.find(it => !!it.name);
|
|
32
|
+
});
|
|
33
|
+
if (hasNames) {
|
|
34
|
+
return [exports.removeIndexNamesModification.createModification({})];
|
|
35
|
+
}
|
|
36
|
+
return [];
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
exports.RemoveIndexNamesDiffer = RemoveIndexNamesDiffer;
|
|
40
|
+
//# sourceMappingURL=RemoveIndexNamesModification.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RemoveIndexNamesModification.js","sourceRoot":"","sources":["../../../../src/modifications/upgrade/RemoveIndexNamesModification.ts"],"names":[],"mappings":";;;AACA,kEAA0F;AAC1F,gEAA4F;AAE5F,MAAa,mCAAmC;IAC/C,gBAAe,CAAC;IAET,SAAS;IAChB,CAAC;IAEM,gBAAgB;QACtB,OAAO,IAAA,+BAAW,EACjB,IAAA,qCAAiB,EAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;YAChC,OAAO;gBACN,GAAG,MAAM;gBACT,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC;gBAC1D,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC;aACxD,CAAA;QACF,CAAC,CAAC,CACF,CAAA;IACF,CAAC;IAED,QAAQ;QACP,OAAO,EAAE,OAAO,EAAE,gEAAgE,EAAE,CAAA;IACrF,CAAC;CACD;AArBD,kFAqBC;AAEY,QAAA,4BAA4B,GAAG,IAAA,4CAAsB,EAAC;IAClE,EAAE,EAAE,kBAAkB;IACtB,OAAO,EAAE,mCAAmC;CAC5C,CAAC,CAAA;AAKF,MAAa,sBAAsB;IAClC,UAAU,CAAC,cAAsB;QAChC,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;YACzE,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;QAC3E,CAAC,CAAC,CAAA;QACF,IAAI,QAAQ,EAAE;YACb,OAAO,CAAC,oCAA4B,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAA;SAC5D;QACD,OAAO,EAAE,CAAA;IACV,CAAC;CACD;AAVD,wDAUC"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { MigrationBuilder } from '@contember/database-migrations';
|
|
2
|
-
import { Model } from '@contember/schema';
|
|
3
|
-
|
|
4
|
-
export declare const createJunctionTableSql: (builder: MigrationBuilder, systemSchema: string, schema: SchemaWithMeta, entity: Model.Entity, targetEntity: Model.Entity, relation: Model.ManyHasManyOwningRelation) => void;
|
|
2
|
+
import { Model, Schema } from '@contember/schema';
|
|
3
|
+
export declare const createJunctionTableSql: (builder: MigrationBuilder, systemSchema: string, schema: Schema, entity: Model.Entity, targetEntity: Model.Entity, relation: Model.ManyHasManyOwningRelation) => void;
|
|
5
4
|
//# sourceMappingURL=createJunctionTable.d.ts.map
|