@contember/schema-migrations 1.4.0-alpha.1 → 1.4.0-alpha.2

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.
Files changed (28) hide show
  1. package/dist/src/SchemaDiffer.d.ts.map +1 -1
  2. package/dist/src/SchemaDiffer.js +2 -0
  3. package/dist/src/SchemaDiffer.js.map +1 -1
  4. package/dist/src/modifications/ModificationHandlerFactory.d.ts.map +1 -1
  5. package/dist/src/modifications/ModificationHandlerFactory.js +2 -0
  6. package/dist/src/modifications/ModificationHandlerFactory.js.map +1 -1
  7. package/dist/src/modifications/relations/ConvertOneHasManyToOneHasOneRelationModification.d.ts +28 -0
  8. package/dist/src/modifications/relations/ConvertOneHasManyToOneHasOneRelationModification.d.ts.map +1 -0
  9. package/dist/src/modifications/relations/ConvertOneHasManyToOneHasOneRelationModification.js +98 -0
  10. package/dist/src/modifications/relations/ConvertOneHasManyToOneHasOneRelationModification.js.map +1 -0
  11. package/dist/src/modifications/relations/ConvertOneToManyRelationModification.d.ts.map +1 -1
  12. package/dist/src/modifications/relations/ConvertOneToManyRelationModification.js +4 -2
  13. package/dist/src/modifications/relations/ConvertOneToManyRelationModification.js.map +1 -1
  14. package/dist/src/tsconfig.tsbuildinfo +1 -1
  15. package/dist/tests/cases/integration/convertManyHasOneToOneHasOneRelation.test.d.ts +2 -0
  16. package/dist/tests/cases/integration/convertManyHasOneToOneHasOneRelation.test.d.ts.map +1 -0
  17. package/dist/tests/cases/integration/convertManyHasOneToOneHasOneRelation.test.js +59 -0
  18. package/dist/tests/cases/integration/convertManyHasOneToOneHasOneRelation.test.js.map +1 -0
  19. package/dist/tests/cases/integration/convertOneToManyRelation.test.js +37 -0
  20. package/dist/tests/cases/integration/convertOneToManyRelation.test.js.map +1 -1
  21. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  22. package/package.json +7 -7
  23. package/src/SchemaDiffer.ts +2 -0
  24. package/src/modifications/ModificationHandlerFactory.ts +2 -0
  25. package/src/modifications/relations/ConvertOneHasManyToOneHasOneRelationModification.ts +145 -0
  26. package/src/modifications/relations/ConvertOneToManyRelationModification.ts +3 -2
  27. package/tests/cases/integration/convertManyHasOneToOneHasOneRelation.test.ts +48 -0
  28. package/tests/cases/integration/convertOneToManyRelation.test.ts +42 -0
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tests_1 = require("../../src/tests");
4
+ const tags_1 = require("../../src/tags");
5
+ const schema_definition_1 = require("@contember/schema-definition");
6
+ const database_1 = require("@contember/database");
7
+ var ConvertMHOtoOHOSchemaOrig;
8
+ (function (ConvertMHOtoOHOSchemaOrig) {
9
+ class Article {
10
+ constructor() {
11
+ this.title = schema_definition_1.SchemaDefinition.stringColumn();
12
+ this.reviews = schema_definition_1.SchemaDefinition.oneHasMany(ArticleReview, 'article');
13
+ }
14
+ }
15
+ ConvertMHOtoOHOSchemaOrig.Article = Article;
16
+ class ArticleReview {
17
+ constructor() {
18
+ this.article = schema_definition_1.SchemaDefinition.manyHasOne(Article, 'reviews');
19
+ }
20
+ }
21
+ ConvertMHOtoOHOSchemaOrig.ArticleReview = ArticleReview;
22
+ })(ConvertMHOtoOHOSchemaOrig || (ConvertMHOtoOHOSchemaOrig = {}));
23
+ var ConvertMHOtoOHOSchemaUpdated;
24
+ (function (ConvertMHOtoOHOSchemaUpdated) {
25
+ class Article {
26
+ constructor() {
27
+ this.title = schema_definition_1.SchemaDefinition.stringColumn();
28
+ this.review = schema_definition_1.SchemaDefinition.oneHasOneInverse(ArticleReview, 'article');
29
+ }
30
+ }
31
+ ConvertMHOtoOHOSchemaUpdated.Article = Article;
32
+ class ArticleReview {
33
+ constructor() {
34
+ this.article = schema_definition_1.SchemaDefinition.oneHasOne(Article, 'review');
35
+ }
36
+ }
37
+ ConvertMHOtoOHOSchemaUpdated.ArticleReview = ArticleReview;
38
+ })(ConvertMHOtoOHOSchemaUpdated || (ConvertMHOtoOHOSchemaUpdated = {}));
39
+ (0, tests_1.testMigrations)('convert one has many to one has one', {
40
+ original: (0, schema_definition_1.createSchema)(ConvertMHOtoOHOSchemaOrig),
41
+ updated: (0, schema_definition_1.createSchema)(ConvertMHOtoOHOSchemaUpdated),
42
+ diff: [{
43
+ entityName: 'ArticleReview',
44
+ fieldName: 'article',
45
+ modification: 'convertOneHasManyToOneHasOneRelation',
46
+ newInverseSideFieldName: 'review',
47
+ }],
48
+ sql: (0, tags_1.SQL) `DROP INDEX "article_review_article_id_idx"; ALTER TABLE "article_review" ADD UNIQUE ("article_id");`,
49
+ databaseMetadata: (0, database_1.createDatabaseMetadata)({
50
+ foreignKeys: [],
51
+ indexes: [{
52
+ indexName: 'article_review_article_id_idx',
53
+ columnNames: ['article_id'],
54
+ tableName: 'article_review',
55
+ }],
56
+ uniqueConstraints: [],
57
+ }),
58
+ });
59
+ //# sourceMappingURL=convertManyHasOneToOneHasOneRelation.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convertManyHasOneToOneHasOneRelation.test.js","sourceRoot":"","sources":["../../../../tests/cases/integration/convertManyHasOneToOneHasOneRelation.test.ts"],"names":[],"mappings":";;AAAA,2CAAgD;AAChD,yCAAoC;AACpC,oEAAoF;AACpF,kDAA4D;AAE5D,IAAU,yBAAyB,CASlC;AATD,WAAU,yBAAyB;IAClC,MAAa,OAAO;QAApB;YACC,UAAK,GAAG,oCAAG,CAAC,YAAY,EAAE,CAAA;YAC1B,YAAO,GAAG,oCAAG,CAAC,UAAU,CAAC,aAAa,EAAE,SAAS,CAAC,CAAA;QACnD,CAAC;KAAA;IAHY,iCAAO,UAGnB,CAAA;IAED,MAAa,aAAa;QAA1B;YACC,YAAO,GAAG,oCAAG,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;QAC7C,CAAC;KAAA;IAFY,uCAAa,gBAEzB,CAAA;AACF,CAAC,EATS,yBAAyB,KAAzB,yBAAyB,QASlC;AAED,IAAU,4BAA4B,CASrC;AATD,WAAU,4BAA4B;IACrC,MAAa,OAAO;QAApB;YACC,UAAK,GAAG,oCAAG,CAAC,YAAY,EAAE,CAAA;YAC1B,WAAM,GAAG,oCAAG,CAAC,gBAAgB,CAAC,aAAa,EAAE,SAAS,CAAC,CAAA;QACxD,CAAC;KAAA;IAHY,oCAAO,UAGnB,CAAA;IAED,MAAa,aAAa;QAA1B;YACC,YAAO,GAAG,oCAAG,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QAC3C,CAAC;KAAA;IAFY,0CAAa,gBAEzB,CAAA;AACF,CAAC,EATS,4BAA4B,KAA5B,4BAA4B,QASrC;AAGD,IAAA,sBAAc,EAAC,qCAAqC,EAAE;IACrD,QAAQ,EAAE,IAAA,gCAAY,EAAC,yBAAyB,CAAC;IACjD,OAAO,EAAE,IAAA,gCAAY,EAAC,4BAA4B,CAAC;IACnD,IAAI,EAAE,CAAC;YACN,UAAU,EAAE,eAAe;YAC3B,SAAS,EAAE,SAAS;YACpB,YAAY,EAAE,sCAAsC;YACpD,uBAAuB,EAAE,QAAQ;SACjC,CAAC;IACF,GAAG,EAAE,IAAA,UAAG,EAAA,qGAAqG;IAC7G,gBAAgB,EAAE,IAAA,iCAAsB,EAAC;QACxC,WAAW,EAAE,EAAE;QACf,OAAO,EAAE,CAAC;gBACT,SAAS,EAAE,+BAA+B;gBAC1C,WAAW,EAAE,CAAC,YAAY,CAAC;gBAC3B,SAAS,EAAE,gBAAgB;aAC3B,CAAC;QACF,iBAAiB,EAAE,EAAE;KACrB,CAAC;CACF,CAAC,CAAA"}
@@ -78,4 +78,41 @@ const database_1 = require("@contember/database");
78
78
  }],
79
79
  }),
80
80
  });
81
+ (0, tests_1.testMigrations)('convert one has one to many has one relation with inverse side, but not renamed', {
82
+ original: {
83
+ model: new schema_definition_1.SchemaBuilder()
84
+ .entity('Post', entity => entity.oneHasOne('image', rel => rel.target('Image').inversedBy('posts')))
85
+ .entity('Image', e => e.column('url', c => c.type(schema_1.Model.ColumnType.String)))
86
+ .buildSchema(),
87
+ },
88
+ updated: {
89
+ model: new schema_definition_1.SchemaBuilder()
90
+ .entity('Post', entity => entity.manyHasOne('image', rel => rel.target('Image').inversedBy('posts')))
91
+ .entity('Image', e => e.column('url', c => c.type(schema_1.Model.ColumnType.String)))
92
+ .buildSchema(),
93
+ },
94
+ diff: [
95
+ {
96
+ modification: 'convertOneToManyRelation',
97
+ entityName: 'Post',
98
+ fieldName: 'image',
99
+ },
100
+ ],
101
+ sql: (0, tags_1.SQL) `
102
+ CREATE INDEX ON "post" ("image_id");
103
+ ALTER TABLE "post"
104
+ DROP CONSTRAINT "uniq_post_image_id";
105
+ `,
106
+ databaseMetadata: (0, database_1.createDatabaseMetadata)({
107
+ foreignKeys: [],
108
+ indexes: [],
109
+ uniqueConstraints: [{
110
+ constraintName: 'uniq_post_image_id',
111
+ columnNames: ['image_id'],
112
+ tableName: 'post',
113
+ deferred: false,
114
+ deferrable: false,
115
+ }],
116
+ }),
117
+ });
81
118
  //# sourceMappingURL=convertOneToManyRelation.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"convertOneToManyRelation.test.js","sourceRoot":"","sources":["../../../../tests/cases/integration/convertOneToManyRelation.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"convertOneToManyRelation.test.js","sourceRoot":"","sources":["../../../../tests/cases/integration/convertOneToManyRelation.test.ts"],"names":[],"mappings":"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"}