@contember/schema-migrations 1.2.0-alpha.6 → 1.2.0-alpha.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/MigrationDescriber.d.ts +1 -2
- package/dist/src/MigrationDescriber.d.ts.map +1 -1
- package/dist/src/MigrationDescriber.js +5 -7
- package/dist/src/MigrationDescriber.js.map +1 -1
- package/dist/src/SchemaDiffer.d.ts.map +1 -1
- package/dist/src/SchemaDiffer.js +35 -48
- package/dist/src/SchemaDiffer.js.map +1 -1
- package/dist/src/SchemaMigrator.d.ts +1 -1
- package/dist/src/SchemaMigrator.d.ts.map +1 -1
- package/dist/src/index.d.ts +1 -5
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -11
- package/dist/src/index.js.map +1 -1
- package/dist/src/modifications/ModificationHandler.d.ts +11 -6
- package/dist/src/modifications/ModificationHandler.d.ts.map +1 -1
- package/dist/src/modifications/ModificationHandler.js +9 -1
- package/dist/src/modifications/ModificationHandler.js.map +1 -1
- package/dist/src/modifications/ModificationHandlerFactory.d.ts +6 -5
- package/dist/src/modifications/ModificationHandlerFactory.d.ts.map +1 -1
- package/dist/src/modifications/ModificationHandlerFactory.js +41 -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 +23 -3
- package/dist/src/modifications/columns/CreateColumnModification.d.ts.map +1 -1
- package/dist/src/modifications/columns/CreateColumnModification.js +70 -67
- package/dist/src/modifications/columns/CreateColumnModification.js.map +1 -1
- package/dist/src/modifications/columns/UpdateColumnDefinitionModification.d.ts +21 -3
- package/dist/src/modifications/columns/UpdateColumnDefinitionModification.d.ts.map +1 -1
- package/dist/src/modifications/columns/UpdateColumnDefinitionModification.js +73 -70
- package/dist/src/modifications/columns/UpdateColumnDefinitionModification.js.map +1 -1
- package/dist/src/modifications/columns/UpdateColumnNameModification.d.ts +20 -2
- package/dist/src/modifications/columns/UpdateColumnNameModification.d.ts.map +1 -1
- package/dist/src/modifications/columns/UpdateColumnNameModification.js +97 -94
- package/dist/src/modifications/columns/UpdateColumnNameModification.js.map +1 -1
- package/dist/src/modifications/constraints/CreateUniqueConstraintModification.d.ts +21 -3
- package/dist/src/modifications/constraints/CreateUniqueConstraintModification.d.ts.map +1 -1
- package/dist/src/modifications/constraints/CreateUniqueConstraintModification.js +72 -66
- package/dist/src/modifications/constraints/CreateUniqueConstraintModification.js.map +1 -1
- package/dist/src/modifications/constraints/RemoveUniqueConstraintModification.d.ts +18 -2
- package/dist/src/modifications/constraints/RemoveUniqueConstraintModification.d.ts.map +1 -1
- package/dist/src/modifications/constraints/RemoveUniqueConstraintModification.js +45 -42
- package/dist/src/modifications/constraints/RemoveUniqueConstraintModification.js.map +1 -1
- package/dist/src/modifications/differs/ChangeViewNonViewDiffer.js +1 -1
- package/dist/src/modifications/differs/RemoveChangedFieldDiffer.js +1 -1
- package/dist/src/modifications/differs/RemoveChangedViewDiffer.js +1 -1
- package/dist/src/modifications/entities/CreateEntityModification.d.ts +19 -2
- package/dist/src/modifications/entities/CreateEntityModification.d.ts.map +1 -1
- package/dist/src/modifications/entities/CreateEntityModification.js +65 -62
- 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 +21 -2
- package/dist/src/modifications/entities/RemoveEntityModification.d.ts.map +1 -1
- package/dist/src/modifications/entities/RemoveEntityModification.js +73 -70
- package/dist/src/modifications/entities/RemoveEntityModification.js.map +1 -1
- package/dist/src/modifications/entities/ToggleEventLogModification.d.ts +19 -2
- package/dist/src/modifications/entities/ToggleEventLogModification.d.ts.map +1 -1
- package/dist/src/modifications/entities/ToggleEventLogModification.js +57 -54
- package/dist/src/modifications/entities/ToggleEventLogModification.js.map +1 -1
- package/dist/src/modifications/entities/UpdateEntityNameModification.d.ts +18 -2
- package/dist/src/modifications/entities/UpdateEntityNameModification.d.ts.map +1 -1
- package/dist/src/modifications/entities/UpdateEntityNameModification.js +78 -78
- package/dist/src/modifications/entities/UpdateEntityNameModification.js.map +1 -1
- package/dist/src/modifications/entities/UpdateEntityTableNameModification.d.ts +18 -2
- package/dist/src/modifications/entities/UpdateEntityTableNameModification.d.ts.map +1 -1
- package/dist/src/modifications/entities/UpdateEntityTableNameModification.js +40 -34
- package/dist/src/modifications/entities/UpdateEntityTableNameModification.js.map +1 -1
- package/dist/src/modifications/entities/UpdateViewModification.d.ts +15 -3
- package/dist/src/modifications/entities/UpdateViewModification.d.ts.map +1 -1
- package/dist/src/modifications/entities/UpdateViewModification.js +28 -28
- package/dist/src/modifications/entities/UpdateViewModification.js.map +1 -1
- package/dist/src/modifications/enums/CreateEnumModification.d.ts +18 -2
- package/dist/src/modifications/enums/CreateEnumModification.d.ts.map +1 -1
- package/dist/src/modifications/enums/CreateEnumModification.js +42 -36
- package/dist/src/modifications/enums/CreateEnumModification.js.map +1 -1
- package/dist/src/modifications/enums/RemoveEnumModification.d.ts +18 -2
- package/dist/src/modifications/enums/RemoveEnumModification.d.ts.map +1 -1
- package/dist/src/modifications/enums/RemoveEnumModification.js +36 -33
- package/dist/src/modifications/enums/RemoveEnumModification.js.map +1 -1
- package/dist/src/modifications/enums/UpdateEnumModification.d.ts +19 -2
- package/dist/src/modifications/enums/UpdateEnumModification.d.ts.map +1 -1
- package/dist/src/modifications/enums/UpdateEnumModification.js +43 -40
- package/dist/src/modifications/enums/UpdateEnumModification.js.map +1 -1
- package/dist/src/modifications/fields/RemoveFieldModification.d.ts +20 -2
- package/dist/src/modifications/fields/RemoveFieldModification.d.ts.map +1 -1
- package/dist/src/modifications/fields/RemoveFieldModification.js +67 -64
- package/dist/src/modifications/fields/RemoveFieldModification.js.map +1 -1
- package/dist/src/modifications/fields/UpdateFieldNameModification.d.ts +18 -2
- package/dist/src/modifications/fields/UpdateFieldNameModification.d.ts.map +1 -1
- package/dist/src/modifications/fields/UpdateFieldNameModification.js +132 -132
- package/dist/src/modifications/fields/UpdateFieldNameModification.js.map +1 -1
- package/dist/src/modifications/index.d.ts +14 -0
- package/dist/src/modifications/index.d.ts.map +1 -0
- package/dist/src/modifications/index.js +32 -0
- package/dist/src/modifications/index.js.map +1 -0
- package/dist/src/modifications/indexes/CreateIndexModification.d.ts +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 +23 -3
- package/dist/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.d.ts.map +1 -1
- package/dist/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.js +68 -65
- package/dist/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.js.map +1 -1
- package/dist/src/modifications/relations/ConvertOneToManyRelationModification.d.ts +23 -2
- package/dist/src/modifications/relations/ConvertOneToManyRelationModification.d.ts.map +1 -1
- package/dist/src/modifications/relations/ConvertOneToManyRelationModification.js +73 -70
- package/dist/src/modifications/relations/ConvertOneToManyRelationModification.js.map +1 -1
- package/dist/src/modifications/relations/CreateRelationInverseSideModification.d.ts +20 -3
- package/dist/src/modifications/relations/CreateRelationInverseSideModification.d.ts.map +1 -1
- package/dist/src/modifications/relations/CreateRelationInverseSideModification.js +36 -33
- package/dist/src/modifications/relations/CreateRelationInverseSideModification.js.map +1 -1
- package/dist/src/modifications/relations/CreateRelationModification.d.ts +25 -3
- package/dist/src/modifications/relations/CreateRelationModification.d.ts.map +1 -1
- package/dist/src/modifications/relations/CreateRelationModification.js +88 -85
- package/dist/src/modifications/relations/CreateRelationModification.js.map +1 -1
- package/dist/src/modifications/relations/DisableOrphanRemovalModification.d.ts +20 -2
- package/dist/src/modifications/relations/DisableOrphanRemovalModification.d.ts.map +1 -1
- package/dist/src/modifications/relations/DisableOrphanRemovalModification.js +42 -39
- package/dist/src/modifications/relations/DisableOrphanRemovalModification.js.map +1 -1
- package/dist/src/modifications/relations/EnableOrphanRemovalModification.d.ts +20 -2
- package/dist/src/modifications/relations/EnableOrphanRemovalModification.d.ts.map +1 -1
- package/dist/src/modifications/relations/EnableOrphanRemovalModification.js +45 -42
- package/dist/src/modifications/relations/EnableOrphanRemovalModification.js.map +1 -1
- package/dist/src/modifications/relations/MakeRelationNotNullModification.d.ts +21 -2
- package/dist/src/modifications/relations/MakeRelationNotNullModification.d.ts.map +1 -1
- package/dist/src/modifications/relations/MakeRelationNotNullModification.js +55 -52
- package/dist/src/modifications/relations/MakeRelationNotNullModification.js.map +1 -1
- package/dist/src/modifications/relations/MakeRelationNullableModification.d.ts +20 -2
- package/dist/src/modifications/relations/MakeRelationNullableModification.d.ts.map +1 -1
- package/dist/src/modifications/relations/MakeRelationNullableModification.js +54 -51
- package/dist/src/modifications/relations/MakeRelationNullableModification.js.map +1 -1
- package/dist/src/modifications/relations/ToggleJunctionEventLogModification.d.ts +27 -0
- package/dist/src/modifications/relations/ToggleJunctionEventLogModification.d.ts.map +1 -0
- package/dist/src/modifications/relations/ToggleJunctionEventLogModification.js +84 -0
- package/dist/src/modifications/relations/ToggleJunctionEventLogModification.js.map +1 -0
- package/dist/src/modifications/relations/UpdateRelationOnDeleteModification.d.ts +20 -3
- package/dist/src/modifications/relations/UpdateRelationOnDeleteModification.d.ts.map +1 -1
- package/dist/src/modifications/relations/UpdateRelationOnDeleteModification.js +42 -39
- package/dist/src/modifications/relations/UpdateRelationOnDeleteModification.js.map +1 -1
- package/dist/src/modifications/relations/UpdateRelationOrderByModification.d.ts +20 -3
- package/dist/src/modifications/relations/UpdateRelationOrderByModification.d.ts.map +1 -1
- package/dist/src/modifications/relations/UpdateRelationOrderByModification.js +43 -40
- package/dist/src/modifications/relations/UpdateRelationOrderByModification.js.map +1 -1
- package/dist/src/modifications/relations/index.d.ts +1 -1
- package/dist/src/modifications/relations/index.d.ts.map +1 -1
- package/dist/src/modifications/relations/index.js +1 -1
- package/dist/src/modifications/relations/index.js.map +1 -1
- package/dist/src/modifications/validation/PatchValidationSchemaModification.d.ts +13 -2
- package/dist/src/modifications/validation/PatchValidationSchemaModification.d.ts.map +1 -1
- package/dist/src/modifications/validation/PatchValidationSchemaModification.js +28 -28
- package/dist/src/modifications/validation/PatchValidationSchemaModification.js.map +1 -1
- package/dist/src/modifications/validation/UpdateValidationSchemaModification.d.ts +17 -3
- package/dist/src/modifications/validation/UpdateValidationSchemaModification.d.ts.map +1 -1
- package/dist/src/modifications/validation/UpdateValidationSchemaModification.js +33 -30
- package/dist/src/modifications/validation/UpdateValidationSchemaModification.js.map +1 -1
- package/dist/src/tsconfig.tsbuildinfo +1 -1
- package/dist/tests/tsconfig.tsbuildinfo +1 -1
- package/package.json +6 -6
- package/src/MigrationDescriber.ts +8 -8
- package/src/SchemaDiffer.ts +65 -79
- package/src/SchemaMigrator.ts +1 -1
- package/src/index.ts +1 -5
- package/src/modifications/ModificationHandler.ts +20 -8
- package/src/modifications/ModificationHandlerFactory.ts +65 -64
- package/src/modifications/acl/PatchAclSchemaModification.ts +7 -8
- package/src/modifications/acl/UpdateAclSchemaModification.ts +16 -15
- package/src/modifications/columns/CreateColumnModification.ts +18 -16
- package/src/modifications/columns/UpdateColumnDefinitionModification.ts +27 -25
- package/src/modifications/columns/UpdateColumnNameModification.ts +23 -16
- package/src/modifications/constraints/CreateUniqueConstraintModification.ts +21 -15
- package/src/modifications/constraints/RemoveUniqueConstraintModification.ts +18 -14
- package/src/modifications/differs/ChangeViewNonViewDiffer.ts +2 -2
- package/src/modifications/differs/RemoveChangedFieldDiffer.ts +2 -2
- package/src/modifications/differs/RemoveChangedViewDiffer.ts +2 -2
- package/src/modifications/entities/CreateEntityModification.ts +16 -8
- package/src/modifications/entities/CreateViewModification.ts +10 -8
- package/src/modifications/entities/RemoveEntityModification.ts +22 -15
- package/src/modifications/entities/ToggleEventLogModification.ts +20 -13
- package/src/modifications/entities/UpdateEntityNameModification.ts +9 -9
- package/src/modifications/entities/UpdateEntityTableNameModification.ts +18 -13
- package/src/modifications/entities/UpdateViewModification.ts +7 -7
- package/src/modifications/enums/CreateEnumModification.ts +18 -13
- package/src/modifications/enums/RemoveEnumModification.ts +14 -12
- package/src/modifications/enums/UpdateEnumModification.ts +15 -13
- package/src/modifications/fields/RemoveFieldModification.ts +16 -13
- package/src/modifications/fields/UpdateFieldNameModification.ts +9 -10
- package/src/modifications/index.ts +13 -0
- package/src/modifications/indexes/CreateIndexModification.ts +10 -9
- package/src/modifications/indexes/RemoveIndexModification.ts +12 -8
- package/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.ts +35 -25
- package/src/modifications/relations/ConvertOneToManyRelationModification.ts +31 -24
- package/src/modifications/relations/CreateRelationInverseSideModification.ts +15 -13
- package/src/modifications/relations/CreateRelationModification.ts +32 -24
- package/src/modifications/relations/DisableOrphanRemovalModification.ts +15 -12
- package/src/modifications/relations/EnableOrphanRemovalModification.ts +16 -13
- package/src/modifications/relations/MakeRelationNotNullModification.ts +16 -14
- package/src/modifications/relations/MakeRelationNullableModification.ts +17 -13
- package/src/modifications/relations/{ToggleManyHasManyEventLogModification.ts → ToggleJunctionEventLogModification.ts} +21 -14
- package/src/modifications/relations/UpdateRelationOnDeleteModification.ts +16 -14
- package/src/modifications/relations/UpdateRelationOrderByModification.ts +17 -14
- package/src/modifications/relations/index.ts +1 -1
- package/src/modifications/validation/PatchValidationSchemaModification.ts +7 -7
- package/src/modifications/validation/UpdateValidationSchemaModification.ts +17 -14
- package/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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UpdateAclSchemaModification.d.ts","sourceRoot":"","sources":["../../../../src/modifications/acl/UpdateAclSchemaModification.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"UpdateAclSchemaModification.d.ts","sourceRoot":"","sources":["../../../../src/modifications/acl/UpdateAclSchemaModification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAA0B,MAAM,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAK5F,qBAAa,kCAAmC,YAAW,mBAAmB,CAAC,+BAA+B,CAAC;IAClG,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,+BAA+B;IAE3D,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAE1C,gBAAgB,IAAI,aAAa;IAOxC,QAAQ;;;CAGR;AAED,MAAM,WAAW,+BAA+B;IAC/C,MAAM,EAAE,GAAG,CAAC,MAAM,CAAA;CAClB;AAED,eAAO,MAAM,2BAA2B,uGAGtC,CAAA;AAEF,qBAAa,qBAAsB,YAAW,MAAM;IACnD,UAAU,CAAC,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;CAUxD"}
|
|
@@ -2,40 +2,43 @@
|
|
|
2
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
|
-
var _a;
|
|
6
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.
|
|
6
|
+
exports.UpdateAclSchemaDiffer = exports.updateAclSchemaModification = exports.UpdateAclSchemaModificationHandler = void 0;
|
|
7
|
+
const ModificationHandler_1 = require("../ModificationHandler");
|
|
8
8
|
const fast_deep_equal_1 = __importDefault(require("fast-deep-equal"));
|
|
9
9
|
const rfc6902_1 = require("rfc6902");
|
|
10
10
|
const PatchAclSchemaModification_1 = require("./PatchAclSchemaModification");
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
class UpdateAclSchemaModificationHandler {
|
|
12
|
+
constructor(data) {
|
|
13
|
+
this.data = data;
|
|
14
|
+
}
|
|
15
|
+
createSql(builder) { }
|
|
16
|
+
getSchemaUpdater() {
|
|
17
|
+
return ({ schema }) => ({
|
|
18
|
+
...schema,
|
|
19
|
+
acl: this.data.schema,
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
describe() {
|
|
23
|
+
return { message: 'Update ACL schema' };
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.UpdateAclSchemaModificationHandler = UpdateAclSchemaModificationHandler;
|
|
27
|
+
exports.updateAclSchemaModification = (0, ModificationHandler_1.createModificationType)({
|
|
28
|
+
id: 'updateAclSchema',
|
|
29
|
+
handler: UpdateAclSchemaModificationHandler,
|
|
30
|
+
});
|
|
31
|
+
class UpdateAclSchemaDiffer {
|
|
32
|
+
createDiff(originalSchema, updatedSchema) {
|
|
33
|
+
if ((0, fast_deep_equal_1.default)(originalSchema.acl, updatedSchema.acl)) {
|
|
34
|
+
return [];
|
|
14
35
|
}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
return ({
|
|
18
|
-
...schema,
|
|
19
|
-
acl: this.data.schema,
|
|
20
|
-
});
|
|
36
|
+
const patch = (0, rfc6902_1.createPatch)(originalSchema.acl, updatedSchema.acl);
|
|
37
|
+
if (patch.length <= 100) {
|
|
38
|
+
return [PatchAclSchemaModification_1.patchAclSchemaModification.createModification({ patch })];
|
|
21
39
|
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
return { modification: this.id, ...data };
|
|
27
|
-
}
|
|
28
|
-
static createDiff(originalSchema, updatedSchema) {
|
|
29
|
-
if ((0, fast_deep_equal_1.default)(originalSchema.acl, updatedSchema.acl)) {
|
|
30
|
-
return [];
|
|
31
|
-
}
|
|
32
|
-
const patch = (0, rfc6902_1.createPatch)(originalSchema.acl, updatedSchema.acl);
|
|
33
|
-
if (patch.length <= 100) {
|
|
34
|
-
return [PatchAclSchemaModification_1.PatchAclSchemaModification.createModification({ patch })];
|
|
35
|
-
}
|
|
36
|
-
return [exports.UpdateAclSchemaModification.createModification({ schema: updatedSchema.acl })];
|
|
37
|
-
}
|
|
38
|
-
},
|
|
39
|
-
_a.id = 'updateAclSchema',
|
|
40
|
-
_a);
|
|
40
|
+
return [exports.updateAclSchemaModification.createModification({ schema: updatedSchema.acl })];
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
exports.UpdateAclSchemaDiffer = UpdateAclSchemaDiffer;
|
|
41
44
|
//# sourceMappingURL=UpdateAclSchemaModification.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UpdateAclSchemaModification.js","sourceRoot":"","sources":["../../../../src/modifications/acl/UpdateAclSchemaModification.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"UpdateAclSchemaModification.js","sourceRoot":"","sources":["../../../../src/modifications/acl/UpdateAclSchemaModification.ts"],"names":[],"mappings":";;;;;;AAGA,gEAA4F;AAC5F,sEAAuC;AACvC,qCAAqC;AACrC,6EAAyE;AAEzE,MAAa,kCAAkC;IAC9C,YAA6B,IAAqC;QAArC,SAAI,GAAJ,IAAI,CAAiC;IAAG,CAAC;IAE/D,SAAS,CAAC,OAAyB,IAAS,CAAC;IAE7C,gBAAgB;QACtB,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;YACvB,GAAG,MAAM;YACT,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;SACrB,CAAC,CAAA;IACH,CAAC;IAED,QAAQ;QACP,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAA;IACxC,CAAC;CACD;AAfD,gFAeC;AAMY,QAAA,2BAA2B,GAAG,IAAA,4CAAsB,EAAC;IACjE,EAAE,EAAE,iBAAiB;IACrB,OAAO,EAAE,kCAAkC;CAC3C,CAAC,CAAA;AAEF,MAAa,qBAAqB;IACjC,UAAU,CAAC,cAAsB,EAAE,aAAqB;QACvD,IAAI,IAAA,yBAAS,EAAC,cAAc,CAAC,GAAG,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE;YACrD,OAAO,EAAE,CAAA;SACT;QACD,MAAM,KAAK,GAAG,IAAA,qBAAW,EAAC,cAAc,CAAC,GAAG,EAAE,aAAa,CAAC,GAAG,CAAC,CAAA;QAChE,IAAI,KAAK,CAAC,MAAM,IAAI,GAAG,EAAE;YACxB,OAAO,CAAC,uDAA0B,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;SACjE;QACD,OAAO,CAAC,mCAA2B,CAAC,kBAAkB,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;IACvF,CAAC;CACD;AAXD,sDAWC"}
|
|
@@ -1,10 +1,30 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
1
|
+
import { MigrationBuilder } from '@contember/database-migrations';
|
|
2
|
+
import { Model, Schema } from '@contember/schema';
|
|
3
|
+
import { SchemaUpdater } from '../utils/schemaUpdateUtils';
|
|
4
|
+
import { Differ, ModificationHandler } from '../ModificationHandler';
|
|
5
|
+
export declare class CreateColumnModificationHandler implements ModificationHandler<CreateColumnModificationData> {
|
|
6
|
+
private readonly data;
|
|
7
|
+
private readonly schema;
|
|
8
|
+
constructor(data: CreateColumnModificationData, schema: Schema);
|
|
9
|
+
createSql(builder: MigrationBuilder): void;
|
|
10
|
+
getSchemaUpdater(): SchemaUpdater;
|
|
11
|
+
describe({ createdEntities }: {
|
|
12
|
+
createdEntities: string[];
|
|
13
|
+
}): {
|
|
14
|
+
message: string;
|
|
15
|
+
failureWarning: string | undefined;
|
|
16
|
+
};
|
|
17
|
+
}
|
|
4
18
|
export interface CreateColumnModificationData {
|
|
5
19
|
entityName: string;
|
|
6
20
|
field: Model.AnyColumn;
|
|
7
21
|
fillValue?: any;
|
|
8
22
|
copyValue?: string;
|
|
9
23
|
}
|
|
24
|
+
export declare const createColumnModification: import("../ModificationHandler").ModificationType<"createColumn", CreateColumnModificationData>;
|
|
25
|
+
export declare class CreateColumnDiffer implements Differ {
|
|
26
|
+
createDiff(originalSchema: Schema, updatedSchema: Schema): import("../../Migration").Migration.Modification<{
|
|
27
|
+
[field: string]: any;
|
|
28
|
+
}>[];
|
|
29
|
+
}
|
|
10
30
|
//# sourceMappingURL=CreateColumnModification.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateColumnModification.d.ts","sourceRoot":"","sources":["../../../../src/modifications/columns/CreateColumnModification.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CreateColumnModification.d.ts","sourceRoot":"","sources":["../../../../src/modifications/columns/CreateColumnModification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAC9E,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAY,aAAa,EAA6B,MAAM,4BAA4B,CAAA;AAC/F,OAAO,EAA0B,MAAM,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAM5F,qBAAa,+BAAgC,YAAW,mBAAmB,CAAC,4BAA4B,CAAC;IAC5F,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAgC,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAA3D,IAAI,EAAE,4BAA4B,EAAmB,MAAM,EAAE,MAAM;IAEzF,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAsC1C,gBAAgB,IAAI,aAAa;IAIxC,QAAQ,CAAC,EAAE,eAAe,EAAE,EAAE;QAAE,eAAe,EAAE,MAAM,EAAE,CAAA;KAAE;;;;CAS3D;AAED,MAAM,WAAW,4BAA4B;IAC5C,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB,SAAS,CAAC,EAAE,GAAG,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;CAClB;AAGD,eAAO,MAAM,wBAAwB,iGAGnC,CAAA;AAEF,qBAAa,kBAAmB,YAAW,MAAM;IAChD,UAAU,CAAC,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;;;CAYxD"}
|
|
@@ -1,83 +1,86 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var _a;
|
|
3
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.
|
|
3
|
+
exports.CreateColumnDiffer = exports.createColumnModification = exports.CreateColumnModificationHandler = void 0;
|
|
5
4
|
const database_migrations_1 = require("@contember/database-migrations");
|
|
6
5
|
const schema_1 = require("@contember/schema");
|
|
7
6
|
const schemaUpdateUtils_1 = require("../utils/schemaUpdateUtils");
|
|
7
|
+
const ModificationHandler_1 = require("../ModificationHandler");
|
|
8
8
|
const dbHelpers_1 = require("../../utils/dbHelpers");
|
|
9
9
|
const schema_utils_1 = require("@contember/schema-utils");
|
|
10
10
|
const exceptions_1 = require("../../exceptions");
|
|
11
11
|
const diffUtils_1 = require("../utils/diffUtils");
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
12
|
+
class CreateColumnModificationHandler {
|
|
13
|
+
constructor(data, schema) {
|
|
14
|
+
this.data = data;
|
|
15
|
+
this.schema = schema;
|
|
16
|
+
}
|
|
17
|
+
createSql(builder) {
|
|
18
|
+
const entity = this.schema.model.entities[this.data.entityName];
|
|
19
|
+
if (entity.view) {
|
|
20
|
+
return;
|
|
16
21
|
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
},
|
|
30
|
-
});
|
|
31
|
-
if (hasSeed) {
|
|
32
|
-
if (this.data.fillValue !== undefined) {
|
|
33
|
-
builder.sql(`UPDATE ${(0, dbHelpers_1.wrapIdentifier)(entity.tableName)}
|
|
22
|
+
const column = this.data.field;
|
|
23
|
+
const hasSeed = this.data.fillValue !== undefined || this.data.copyValue !== undefined;
|
|
24
|
+
builder.addColumn(entity.tableName, {
|
|
25
|
+
[column.columnName]: {
|
|
26
|
+
type: column.type === schema_1.Model.ColumnType.Enum ? `"${column.columnType}"` : column.columnType,
|
|
27
|
+
notNull: !column.nullable && !hasSeed,
|
|
28
|
+
sequenceGenerated: column.sequence,
|
|
29
|
+
},
|
|
30
|
+
});
|
|
31
|
+
if (hasSeed) {
|
|
32
|
+
if (this.data.fillValue !== undefined) {
|
|
33
|
+
builder.sql(`UPDATE ${(0, dbHelpers_1.wrapIdentifier)(entity.tableName)}
|
|
34
34
|
SET ${(0, dbHelpers_1.wrapIdentifier)(column.columnName)} = ${(0, database_migrations_1.escapeValue)(this.data.fillValue)}`);
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
35
|
+
}
|
|
36
|
+
else if (this.data.copyValue !== undefined) {
|
|
37
|
+
const copyFrom = (0, schema_utils_1.getColumnName)(this.schema.model, entity, this.data.copyValue);
|
|
38
|
+
builder.sql(`UPDATE ${(0, dbHelpers_1.wrapIdentifier)(entity.tableName)}
|
|
39
39
|
SET ${(0, dbHelpers_1.wrapIdentifier)(column.columnName)} = ${(0, dbHelpers_1.wrapIdentifier)(copyFrom)}`);
|
|
40
|
-
}
|
|
41
|
-
else {
|
|
42
|
-
throw new exceptions_1.ImplementationException();
|
|
43
|
-
}
|
|
44
|
-
// event applier defers constraint check, we need to fire them before ALTER
|
|
45
|
-
builder.sql(`SET CONSTRAINTS ALL IMMEDIATE`);
|
|
46
|
-
builder.sql(`SET CONSTRAINTS ALL DEFERRED`);
|
|
47
|
-
if (!column.nullable) {
|
|
48
|
-
builder.alterColumn(entity.tableName, column.columnName, {
|
|
49
|
-
notNull: true,
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
40
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
: undefined;
|
|
63
|
-
return { message: `Add field ${this.data.entityName}.${this.data.field.name}`, failureWarning };
|
|
64
|
-
}
|
|
65
|
-
static createModification(data) {
|
|
66
|
-
return { modification: this.id, ...data };
|
|
67
|
-
}
|
|
68
|
-
static createDiff(originalSchema, updatedSchema) {
|
|
69
|
-
return (0, diffUtils_1.createFields)(originalSchema, updatedSchema, ({ newField, updatedEntity }) => {
|
|
70
|
-
if (!(0, schema_utils_1.isColumn)(newField)) {
|
|
71
|
-
return undefined;
|
|
72
|
-
}
|
|
73
|
-
return exports.CreateColumnModification.createModification({
|
|
74
|
-
entityName: updatedEntity.name,
|
|
75
|
-
field: newField,
|
|
76
|
-
...(newField.default !== undefined ? { fillValue: newField.default } : {}),
|
|
41
|
+
else {
|
|
42
|
+
throw new exceptions_1.ImplementationException();
|
|
43
|
+
}
|
|
44
|
+
// event applier defers constraint check, we need to fire them before ALTER
|
|
45
|
+
builder.sql(`SET CONSTRAINTS ALL IMMEDIATE`);
|
|
46
|
+
builder.sql(`SET CONSTRAINTS ALL DEFERRED`);
|
|
47
|
+
if (!column.nullable) {
|
|
48
|
+
builder.alterColumn(entity.tableName, column.columnName, {
|
|
49
|
+
notNull: true,
|
|
77
50
|
});
|
|
78
|
-
}
|
|
51
|
+
}
|
|
79
52
|
}
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
|
|
53
|
+
}
|
|
54
|
+
getSchemaUpdater() {
|
|
55
|
+
return (0, schemaUpdateUtils_1.updateModel)((0, schemaUpdateUtils_1.updateEntity)(this.data.entityName, (0, schemaUpdateUtils_1.addField)(this.data.field)));
|
|
56
|
+
}
|
|
57
|
+
describe({ createdEntities }) {
|
|
58
|
+
const notNull = !this.data.field.nullable;
|
|
59
|
+
const hasValue = this.data.fillValue !== undefined || this.data.copyValue !== undefined;
|
|
60
|
+
const failureWarning = notNull && !hasValue && !createdEntities.includes(this.data.entityName)
|
|
61
|
+
? 'May fail in runtime, because column is not-null. Consider setting fillValue or copyValue'
|
|
62
|
+
: undefined;
|
|
63
|
+
return { message: `Add field ${this.data.entityName}.${this.data.field.name}`, failureWarning };
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
exports.CreateColumnModificationHandler = CreateColumnModificationHandler;
|
|
67
|
+
exports.createColumnModification = (0, ModificationHandler_1.createModificationType)({
|
|
68
|
+
id: 'createColumn',
|
|
69
|
+
handler: CreateColumnModificationHandler,
|
|
70
|
+
});
|
|
71
|
+
class CreateColumnDiffer {
|
|
72
|
+
createDiff(originalSchema, updatedSchema) {
|
|
73
|
+
return (0, diffUtils_1.createFields)(originalSchema, updatedSchema, ({ newField, updatedEntity }) => {
|
|
74
|
+
if (!(0, schema_utils_1.isColumn)(newField)) {
|
|
75
|
+
return undefined;
|
|
76
|
+
}
|
|
77
|
+
return exports.createColumnModification.createModification({
|
|
78
|
+
entityName: updatedEntity.name,
|
|
79
|
+
field: newField,
|
|
80
|
+
...(newField.default !== undefined ? { fillValue: newField.default } : {}),
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
exports.CreateColumnDiffer = CreateColumnDiffer;
|
|
83
86
|
//# sourceMappingURL=CreateColumnModification.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateColumnModification.js","sourceRoot":"","sources":["../../../../src/modifications/columns/CreateColumnModification.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CreateColumnModification.js","sourceRoot":"","sources":["../../../../src/modifications/columns/CreateColumnModification.ts"],"names":[],"mappings":";;;AAAA,wEAA8E;AAC9E,8CAAiD;AACjD,kEAA+F;AAC/F,gEAA4F;AAC5F,qDAAsD;AACtD,0DAAiE;AACjE,iDAA0D;AAC1D,kDAAiD;AAEjD,MAAa,+BAA+B;IAC3C,YAA6B,IAAkC,EAAmB,MAAc;QAAnE,SAAI,GAAJ,IAAI,CAA8B;QAAmB,WAAM,GAAN,MAAM,CAAQ;IAAG,CAAC;IAE7F,SAAS,CAAC,OAAyB;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAC/D,IAAI,MAAM,CAAC,IAAI,EAAE;YAChB,OAAM;SACN;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAA;QAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,CAAA;QACtF,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE;YACnC,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;gBACpB,IAAI,EAAE,MAAM,CAAC,IAAI,KAAK,cAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU;gBAC1F,OAAO,EAAE,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,OAAO;gBACrC,iBAAiB,EAAE,MAAM,CAAC,QAAQ;aAClC;SACD,CAAC,CAAA;QACF,IAAI,OAAO,EAAE;YACZ,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;gBACtC,OAAO,CAAC,GAAG,CAAC,UAAU,IAAA,0BAAc,EAAC,MAAM,CAAC,SAAS,CAAC;SACjD,IAAA,0BAAc,EAAC,MAAM,CAAC,UAAU,CAAC,MAAM,IAAA,iCAAW,EAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;aAC/E;iBAAM,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;gBAC7C,MAAM,QAAQ,GAAG,IAAA,4BAAa,EAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;gBAC9E,OAAO,CAAC,GAAG,CAAC,UAAU,IAAA,0BAAc,EAAC,MAAM,CAAC,SAAS,CAAC;SACjD,IAAA,0BAAc,EAAC,MAAM,CAAC,UAAU,CAAC,MAAM,IAAA,0BAAc,EAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;aACvE;iBAAM;gBACN,MAAM,IAAI,oCAAuB,EAAE,CAAA;aACnC;YAED,2EAA2E;YAC3E,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAA;YAC5C,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAA;YAE3C,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;gBACrB,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,UAAU,EAAE;oBACxD,OAAO,EAAE,IAAI;iBACb,CAAC,CAAA;aACF;SACD;IACF,CAAC;IAEM,gBAAgB;QACtB,OAAO,IAAA,+BAAW,EAAC,IAAA,gCAAY,EAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAA,4BAAQ,EAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAClF,CAAC;IAED,QAAQ,CAAC,EAAE,eAAe,EAAiC;QAC1D,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAA;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,CAAA;QACvF,MAAM,cAAc,GACnB,OAAO,IAAI,CAAC,QAAQ,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;YACtE,CAAC,CAAC,0FAA0F;YAC5F,CAAC,CAAC,SAAS,CAAA;QACb,OAAO,EAAE,OAAO,EAAE,aAAa,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,cAAc,EAAE,CAAA;IAChG,CAAC;CACD;AAtDD,0EAsDC;AAUY,QAAA,wBAAwB,GAAG,IAAA,4CAAsB,EAAC;IAC9D,EAAE,EAAE,cAAc;IAClB,OAAO,EAAE,+BAA+B;CACxC,CAAC,CAAA;AAEF,MAAa,kBAAkB;IAC9B,UAAU,CAAC,cAAsB,EAAE,aAAqB;QACvD,OAAO,IAAA,wBAAY,EAAC,cAAc,EAAE,aAAa,EAAE,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,EAAE;YAClF,IAAI,CAAC,IAAA,uBAAQ,EAAC,QAAQ,CAAC,EAAE;gBACxB,OAAO,SAAS,CAAA;aAChB;YACD,OAAO,gCAAwB,CAAC,kBAAkB,CAAC;gBAClD,UAAU,EAAE,aAAa,CAAC,IAAI;gBAC9B,KAAK,EAAE,QAAQ;gBACf,GAAG,CAAC,QAAQ,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC1E,CAAC,CAAA;QACH,CAAC,CAAC,CAAA;IACH,CAAC;CACD;AAbD,gDAaC"}
|
|
@@ -1,6 +1,18 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
1
|
+
import { MigrationBuilder } from '@contember/database-migrations';
|
|
2
|
+
import { Model, Schema } from '@contember/schema';
|
|
3
|
+
import { SchemaUpdater } from '../utils/schemaUpdateUtils';
|
|
4
|
+
import { Differ, ModificationHandler } from '../ModificationHandler';
|
|
5
|
+
export declare class UpdateColumnDefinitionModificationHandler implements ModificationHandler<UpdateColumnDefinitionModificationData> {
|
|
6
|
+
private readonly data;
|
|
7
|
+
private readonly schema;
|
|
8
|
+
constructor(data: UpdateColumnDefinitionModificationData, schema: Schema);
|
|
9
|
+
createSql(builder: MigrationBuilder): void;
|
|
10
|
+
getSchemaUpdater(): SchemaUpdater;
|
|
11
|
+
describe(): {
|
|
12
|
+
message: string;
|
|
13
|
+
failureWarning: string | undefined;
|
|
14
|
+
};
|
|
15
|
+
}
|
|
4
16
|
declare type SequenceDefinitionAlter = Model.AnyColumn['sequence'] & {
|
|
5
17
|
restart?: boolean;
|
|
6
18
|
};
|
|
@@ -12,5 +24,11 @@ export interface UpdateColumnDefinitionModificationData {
|
|
|
12
24
|
fieldName: string;
|
|
13
25
|
definition: ColumnDefinitionAlter;
|
|
14
26
|
}
|
|
27
|
+
export declare const updateColumnDefinitionModification: import("../ModificationHandler").ModificationType<"updateColumnDefinition", UpdateColumnDefinitionModificationData>;
|
|
28
|
+
export declare class UpdateColumnDefinitionDiffer implements Differ {
|
|
29
|
+
createDiff(originalSchema: Schema, updatedSchema: Schema): import("../../Migration").Migration.Modification<{
|
|
30
|
+
[field: string]: any;
|
|
31
|
+
}>[];
|
|
32
|
+
}
|
|
15
33
|
export {};
|
|
16
34
|
//# sourceMappingURL=UpdateColumnDefinitionModification.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UpdateColumnDefinitionModification.d.ts","sourceRoot":"","sources":["../../../../src/modifications/columns/UpdateColumnDefinitionModification.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"UpdateColumnDefinitionModification.d.ts","sourceRoot":"","sources":["../../../../src/modifications/columns/UpdateColumnDefinitionModification.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,EAA0B,MAAM,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAK5F,qBAAa,yCAA0C,YAAW,mBAAmB,CAAC,sCAAsC,CAAC;IAChH,OAAO,CAAC,QAAQ,CAAC,IAAI;IAA0C,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAArE,IAAI,EAAE,sCAAsC,EAAmB,MAAM,EAAE,MAAM;IAEnG,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAoC1C,gBAAgB,IAAI,aAAa;IAexC,QAAQ;;;;CAUR;AAED,aAAK,uBAAuB,GACzB,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,GAC3B;IACD,OAAO,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA;AAEF,aAAK,qBAAqB,GACvB,KAAK,CAAC,SAAS,GACf;IACD,QAAQ,CAAC,EAAE,uBAAuB,CAAA;CAClC,CAAA;AAEF,MAAM,WAAW,sCAAsC;IACtD,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,qBAAqB,CAAA;CACjC;AAED,eAAO,MAAM,kCAAkC,qHAG7C,CAAA;AAEF,qBAAa,4BAA6B,YAAW,MAAM;IAC1D,UAAU,CAAC,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;;;CAsBxD"}
|
|
@@ -2,89 +2,92 @@
|
|
|
2
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
|
-
var _a;
|
|
6
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.
|
|
6
|
+
exports.UpdateColumnDefinitionDiffer = exports.updateColumnDefinitionModification = exports.UpdateColumnDefinitionModificationHandler = void 0;
|
|
8
7
|
const schema_1 = require("@contember/schema");
|
|
9
8
|
const schemaUpdateUtils_1 = require("../utils/schemaUpdateUtils");
|
|
9
|
+
const ModificationHandler_1 = require("../ModificationHandler");
|
|
10
10
|
const fast_deep_equal_1 = __importDefault(require("fast-deep-equal"));
|
|
11
11
|
const diffUtils_1 = require("../utils/diffUtils");
|
|
12
12
|
const database_1 = require("@contember/database");
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
13
|
+
class UpdateColumnDefinitionModificationHandler {
|
|
14
|
+
constructor(data, schema) {
|
|
15
|
+
this.data = data;
|
|
16
|
+
this.schema = schema;
|
|
17
|
+
}
|
|
18
|
+
createSql(builder) {
|
|
19
|
+
const entity = this.schema.model.entities[this.data.entityName];
|
|
20
|
+
if (entity.view) {
|
|
21
|
+
return;
|
|
17
22
|
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
23
|
+
const field = entity.fields[this.data.fieldName];
|
|
24
|
+
const definition = this.data.definition;
|
|
25
|
+
const newType = definition.columnType !== field.columnType
|
|
26
|
+
? definition.type === schema_1.Model.ColumnType.Enum
|
|
27
|
+
? `"${definition.columnType}"`
|
|
28
|
+
: definition.columnType
|
|
29
|
+
: undefined;
|
|
30
|
+
builder.alterColumn(entity.tableName, field.columnName, {
|
|
31
|
+
type: newType,
|
|
32
|
+
notNull: field.nullable !== definition.nullable ? !definition.nullable : undefined,
|
|
33
|
+
using: newType !== undefined ? `${(0, database_1.wrapIdentifier)(field.columnName)}::${newType}` : undefined,
|
|
34
|
+
sequenceGenerated: field.sequence && !definition.sequence ? false : (!field.sequence ? definition.sequence : undefined),
|
|
35
|
+
});
|
|
36
|
+
const seqAlter = [];
|
|
37
|
+
if (field.sequence && definition.sequence) {
|
|
38
|
+
if (field.sequence.precedence !== definition.sequence.precedence) {
|
|
39
|
+
seqAlter.push(`SET GENERATED ${definition.sequence.precedence}`);
|
|
22
40
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
const newType = definition.columnType !== field.columnType
|
|
26
|
-
? definition.type === schema_1.Model.ColumnType.Enum
|
|
27
|
-
? `"${definition.columnType}"`
|
|
28
|
-
: definition.columnType
|
|
29
|
-
: undefined;
|
|
30
|
-
builder.alterColumn(entity.tableName, field.columnName, {
|
|
31
|
-
type: newType,
|
|
32
|
-
notNull: field.nullable !== definition.nullable ? !definition.nullable : undefined,
|
|
33
|
-
using: newType !== undefined ? `${(0, database_1.wrapIdentifier)(field.columnName)}::${newType}` : undefined,
|
|
34
|
-
sequenceGenerated: field.sequence && !definition.sequence ? false : (!field.sequence ? definition.sequence : undefined),
|
|
35
|
-
});
|
|
36
|
-
const seqAlter = [];
|
|
37
|
-
if (field.sequence && definition.sequence) {
|
|
38
|
-
if (field.sequence.precedence !== definition.sequence.precedence) {
|
|
39
|
-
seqAlter.push(`SET GENERATED ${definition.sequence.precedence}`);
|
|
40
|
-
}
|
|
41
|
-
if (field.sequence.start !== definition.sequence.start && typeof definition.sequence.start == 'number') {
|
|
42
|
-
seqAlter.push(`SET START WITH ${definition.sequence.start}`);
|
|
43
|
-
}
|
|
44
|
-
if (definition.sequence.restart) {
|
|
45
|
-
seqAlter.push('RESTART');
|
|
46
|
-
}
|
|
41
|
+
if (field.sequence.start !== definition.sequence.start && typeof definition.sequence.start == 'number') {
|
|
42
|
+
seqAlter.push(`SET START WITH ${definition.sequence.start}`);
|
|
47
43
|
}
|
|
48
|
-
if (
|
|
49
|
-
|
|
44
|
+
if (definition.sequence.restart) {
|
|
45
|
+
seqAlter.push('RESTART');
|
|
50
46
|
}
|
|
51
47
|
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
return {
|
|
55
|
-
...this.data.definition,
|
|
56
|
-
name: field.name,
|
|
57
|
-
columnName: field.columnName,
|
|
58
|
-
};
|
|
59
|
-
})));
|
|
48
|
+
if (seqAlter.length > 0) {
|
|
49
|
+
builder.sql(`ALTER TABLE ${(0, database_1.wrapIdentifier)(entity.tableName)} ALTER ${(0, database_1.wrapIdentifier)(field.columnName)} ${seqAlter.join(' ')}`);
|
|
60
50
|
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
const failureWarning = changingToNotNull ? 'Changing to not-null may fail in runtime.' : undefined;
|
|
51
|
+
}
|
|
52
|
+
getSchemaUpdater() {
|
|
53
|
+
return (0, schemaUpdateUtils_1.updateModel)((0, schemaUpdateUtils_1.updateEntity)(this.data.entityName, (0, schemaUpdateUtils_1.updateField)(this.data.fieldName, ({ field }) => {
|
|
65
54
|
return {
|
|
66
|
-
|
|
67
|
-
|
|
55
|
+
...this.data.definition,
|
|
56
|
+
name: field.name,
|
|
57
|
+
columnName: field.columnName,
|
|
68
58
|
};
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
59
|
+
})));
|
|
60
|
+
}
|
|
61
|
+
describe() {
|
|
62
|
+
const current = this.schema.model.entities[this.data.entityName].fields[this.data.fieldName];
|
|
63
|
+
const changingToNotNull = current.nullable && !this.data.definition.nullable;
|
|
64
|
+
const failureWarning = changingToNotNull ? 'Changing to not-null may fail in runtime.' : undefined;
|
|
65
|
+
return {
|
|
66
|
+
message: `Update column definition of field ${this.data.entityName}.${this.data.fieldName}`,
|
|
67
|
+
failureWarning,
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
exports.UpdateColumnDefinitionModificationHandler = UpdateColumnDefinitionModificationHandler;
|
|
72
|
+
exports.updateColumnDefinitionModification = (0, ModificationHandler_1.createModificationType)({
|
|
73
|
+
id: 'updateColumnDefinition',
|
|
74
|
+
handler: UpdateColumnDefinitionModificationHandler,
|
|
75
|
+
});
|
|
76
|
+
class UpdateColumnDefinitionDiffer {
|
|
77
|
+
createDiff(originalSchema, updatedSchema) {
|
|
78
|
+
return (0, diffUtils_1.updateColumns)(originalSchema, updatedSchema, ({ originalColumn, updatedColumn, updatedEntity }) => {
|
|
79
|
+
const { name: {}, columnName: {}, ...updatedDefinition } = updatedColumn;
|
|
80
|
+
const { name: {}, columnName: {}, ...originalDefinition } = originalColumn;
|
|
81
|
+
if ((0, fast_deep_equal_1.default)(updatedDefinition, originalDefinition)) {
|
|
82
|
+
return undefined;
|
|
83
|
+
}
|
|
84
|
+
return exports.updateColumnDefinitionModification.createModification({
|
|
85
|
+
entityName: updatedEntity.name,
|
|
86
|
+
fieldName: updatedColumn.name,
|
|
87
|
+
definition: updatedDefinition,
|
|
85
88
|
});
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
exports.UpdateColumnDefinitionDiffer = UpdateColumnDefinitionDiffer;
|
|
90
93
|
//# sourceMappingURL=UpdateColumnDefinitionModification.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UpdateColumnDefinitionModification.js","sourceRoot":"","sources":["../../../../src/modifications/columns/UpdateColumnDefinitionModification.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"UpdateColumnDefinitionModification.js","sourceRoot":"","sources":["../../../../src/modifications/columns/UpdateColumnDefinitionModification.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,26 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { MigrationBuilder } from '@contember/database-migrations';
|
|
2
|
+
import { Schema } from '@contember/schema';
|
|
3
|
+
import { SchemaUpdater } from '../utils/schemaUpdateUtils';
|
|
4
|
+
import { Differ, ModificationHandler } from '../ModificationHandler';
|
|
5
|
+
export declare class UpdateColumnNameModificationHandler implements ModificationHandler<UpdateColumnNameModificationData> {
|
|
6
|
+
private readonly data;
|
|
7
|
+
private readonly schema;
|
|
8
|
+
constructor(data: UpdateColumnNameModificationData, schema: Schema);
|
|
9
|
+
createSql(builder: MigrationBuilder): void;
|
|
10
|
+
getSchemaUpdater(): SchemaUpdater;
|
|
11
|
+
describe(): {
|
|
12
|
+
message: string;
|
|
13
|
+
};
|
|
14
|
+
}
|
|
3
15
|
export interface UpdateColumnNameModificationData {
|
|
4
16
|
entityName: string;
|
|
5
17
|
fieldName: string;
|
|
6
18
|
columnName: string;
|
|
7
19
|
}
|
|
20
|
+
export declare const updateColumnNameModification: import("../ModificationHandler").ModificationType<"updateColumnName", UpdateColumnNameModificationData>;
|
|
21
|
+
export declare class UpdateColumnNameDiffer implements Differ {
|
|
22
|
+
createDiff(originalSchema: Schema, updatedSchema: Schema): import("../../Migration").Migration.Modification<{
|
|
23
|
+
[field: string]: any;
|
|
24
|
+
}>[];
|
|
25
|
+
}
|
|
8
26
|
//# sourceMappingURL=UpdateColumnNameModification.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UpdateColumnNameModification.d.ts","sourceRoot":"","sources":["../../../../src/modifications/columns/UpdateColumnNameModification.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"UpdateColumnNameModification.d.ts","sourceRoot":"","sources":["../../../../src/modifications/columns/UpdateColumnNameModification.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,EAA0B,MAAM,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAI5F,qBAAa,mCAAoC,YAAW,mBAAmB,CAAC,gCAAgC,CAAC;IACpG,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAoC,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAA/D,IAAI,EAAE,gCAAgC,EAAmB,MAAM,EAAE,MAAM;IAG7F,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IA8B1C,gBAAgB,IAAI,aAAa;IAiDxC,QAAQ;;;CAGR;AAED,MAAM,WAAW,gCAAgC;IAChD,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;CAClB;AAED,eAAO,MAAM,4BAA4B,yGAGvC,CAAA;AAEF,qBAAa,sBAAuB,YAAW,MAAM;IACpD,UAAU,CAAC,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;;;CAYxD"}
|