@contember/schema-migrations 1.3.0-rc.2 → 1.3.0

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 (125) hide show
  1. package/dist/src/SchemaDiffer.d.ts.map +1 -1
  2. package/dist/src/SchemaDiffer.js +1 -2
  3. package/dist/src/SchemaDiffer.js.map +1 -1
  4. package/dist/src/modifications/differs/{RemoveChangedViewDiffer.d.ts → RemoveViewDiffer.d.ts} +5 -2
  5. package/dist/src/modifications/differs/RemoveViewDiffer.d.ts.map +1 -0
  6. package/dist/src/modifications/differs/RemoveViewDiffer.js +48 -0
  7. package/dist/src/modifications/differs/RemoveViewDiffer.js.map +1 -0
  8. package/dist/src/modifications/differs/index.d.ts +1 -2
  9. package/dist/src/modifications/differs/index.d.ts.map +1 -1
  10. package/dist/src/modifications/differs/index.js +1 -2
  11. package/dist/src/modifications/differs/index.js.map +1 -1
  12. package/dist/src/modifications/utils/viewDependencies.js +3 -3
  13. package/dist/src/tsconfig.tsbuildinfo +1 -1
  14. package/dist/tests/cases/integration/convertOneHasManyToManyHasManyRelation.test.js +2 -2
  15. package/dist/tests/cases/integration/convertOneHasManyToManyHasManyRelation.test.js.map +1 -1
  16. package/dist/tests/cases/integration/convertOneToManyRelation.test.js +24 -16
  17. package/dist/tests/cases/integration/convertOneToManyRelation.test.js.map +1 -1
  18. package/dist/tests/cases/integration/createAndDropIndex.test.js +4 -4
  19. package/dist/tests/cases/integration/createAndDropIndex.test.js.map +1 -1
  20. package/dist/tests/cases/integration/createColumn.test.js +4 -4
  21. package/dist/tests/cases/integration/createColumn.test.js.map +1 -1
  22. package/dist/tests/cases/integration/createEntity.test.js +11 -9
  23. package/dist/tests/cases/integration/createEntity.test.js.map +1 -1
  24. package/dist/tests/cases/integration/createEnum.test.js +13 -9
  25. package/dist/tests/cases/integration/createEnum.test.js.map +1 -1
  26. package/dist/tests/cases/integration/createManyHasMany.test.js +11 -7
  27. package/dist/tests/cases/integration/createManyHasMany.test.js.map +1 -1
  28. package/dist/tests/cases/integration/createManyHasOne.test.js +13 -9
  29. package/dist/tests/cases/integration/createManyHasOne.test.js.map +1 -1
  30. package/dist/tests/cases/integration/createOneHasMany.test.js +10 -8
  31. package/dist/tests/cases/integration/createOneHasMany.test.js.map +1 -1
  32. package/dist/tests/cases/integration/createOneHasOne.test.js +9 -7
  33. package/dist/tests/cases/integration/createOneHasOne.test.js.map +1 -1
  34. package/dist/tests/cases/integration/createRelationInverseSide.test.js +24 -16
  35. package/dist/tests/cases/integration/createRelationInverseSide.test.js.map +1 -1
  36. package/dist/tests/cases/integration/createView.test.js +3 -3
  37. package/dist/tests/cases/integration/createView.test.js.map +1 -1
  38. package/dist/tests/cases/integration/disableOrphanRemoval.test.js +14 -10
  39. package/dist/tests/cases/integration/disableOrphanRemoval.test.js.map +1 -1
  40. package/dist/tests/cases/integration/enableOrphanRemoval.test.js +14 -10
  41. package/dist/tests/cases/integration/enableOrphanRemoval.test.js.map +1 -1
  42. package/dist/tests/cases/integration/makeColumnNotNull.test.js +10 -6
  43. package/dist/tests/cases/integration/makeColumnNotNull.test.js.map +1 -1
  44. package/dist/tests/cases/integration/makeRelationNotNull.test.js +14 -10
  45. package/dist/tests/cases/integration/makeRelationNotNull.test.js.map +1 -1
  46. package/dist/tests/cases/integration/makeRelationNullable.test.js +26 -18
  47. package/dist/tests/cases/integration/makeRelationNullable.test.js.map +1 -1
  48. package/dist/tests/cases/integration/patchAclSchema.test.js +21 -17
  49. package/dist/tests/cases/integration/patchAclSchema.test.js.map +1 -1
  50. package/dist/tests/cases/integration/removeEntity.test.js +60 -52
  51. package/dist/tests/cases/integration/removeEntity.test.js.map +1 -1
  52. package/dist/tests/cases/integration/removeEnum.test.js +13 -9
  53. package/dist/tests/cases/integration/removeEnum.test.js.map +1 -1
  54. package/dist/tests/cases/integration/removeField.test.js +71 -51
  55. package/dist/tests/cases/integration/removeField.test.js.map +1 -1
  56. package/dist/tests/cases/integration/toggleEventLog.test.js +4 -4
  57. package/dist/tests/cases/integration/toggleEventLog.test.js.map +1 -1
  58. package/dist/tests/cases/integration/toggleJunctionEventLog.test.js +4 -4
  59. package/dist/tests/cases/integration/toggleJunctionEventLog.test.js.map +1 -1
  60. package/dist/tests/cases/integration/updateColumnDefinition.test.js +18 -14
  61. package/dist/tests/cases/integration/updateColumnDefinition.test.js.map +1 -1
  62. package/dist/tests/cases/integration/updateEntityName.test.js +66 -50
  63. package/dist/tests/cases/integration/updateEntityName.test.js.map +1 -1
  64. package/dist/tests/cases/integration/updateEntityOrderBy.test.js +4 -4
  65. package/dist/tests/cases/integration/updateEntityOrderBy.test.js.map +1 -1
  66. package/dist/tests/cases/integration/updateEnum.test.js +16 -12
  67. package/dist/tests/cases/integration/updateEnum.test.js.map +1 -1
  68. package/dist/tests/cases/integration/updateFieldName.test.js +120 -96
  69. package/dist/tests/cases/integration/updateFieldName.test.js.map +1 -1
  70. package/dist/tests/cases/integration/updateRelationOnDelete.test.js +14 -10
  71. package/dist/tests/cases/integration/updateRelationOnDelete.test.js.map +1 -1
  72. package/dist/tests/cases/integration/updateRelationOrderBy.test.js +15 -11
  73. package/dist/tests/cases/integration/updateRelationOrderBy.test.js.map +1 -1
  74. package/dist/tests/cases/integration/updateView.test.js +8 -8
  75. package/dist/tests/cases/integration/updateView.test.js.map +1 -1
  76. package/dist/tests/src/tests.d.ts +7 -9
  77. package/dist/tests/src/tests.d.ts.map +1 -1
  78. package/dist/tests/src/tests.js +13 -16
  79. package/dist/tests/src/tests.js.map +1 -1
  80. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  81. package/package.json +6 -6
  82. package/src/SchemaDiffer.ts +2 -3
  83. package/src/modifications/differs/{RemoveChangedViewDiffer.ts → RemoveViewDiffer.ts} +30 -7
  84. package/src/modifications/differs/index.ts +1 -2
  85. package/src/modifications/utils/viewDependencies.ts +3 -3
  86. package/tests/cases/integration/convertOneHasManyToManyHasManyRelation.test.ts +3 -3
  87. package/tests/cases/integration/convertOneToManyRelation.test.ts +32 -24
  88. package/tests/cases/integration/createAndDropIndex.test.ts +5 -5
  89. package/tests/cases/integration/createColumn.test.ts +5 -5
  90. package/tests/cases/integration/createEntity.test.ts +14 -12
  91. package/tests/cases/integration/createEnum.test.ts +15 -11
  92. package/tests/cases/integration/createManyHasMany.test.ts +13 -9
  93. package/tests/cases/integration/createManyHasOne.test.ts +15 -11
  94. package/tests/cases/integration/createOneHasMany.test.ts +14 -12
  95. package/tests/cases/integration/createOneHasOne.test.ts +11 -9
  96. package/tests/cases/integration/createRelationInverseSide.test.ts +26 -18
  97. package/tests/cases/integration/createView.test.ts +4 -4
  98. package/tests/cases/integration/disableOrphanRemoval.test.ts +18 -14
  99. package/tests/cases/integration/enableOrphanRemoval.test.ts +18 -14
  100. package/tests/cases/integration/makeColumnNotNull.test.ts +10 -6
  101. package/tests/cases/integration/makeRelationNotNull.test.ts +18 -14
  102. package/tests/cases/integration/makeRelationNullable.test.ts +30 -22
  103. package/tests/cases/integration/patchAclSchema.test.ts +21 -17
  104. package/tests/cases/integration/removeEntity.test.ts +63 -55
  105. package/tests/cases/integration/removeEnum.test.ts +15 -11
  106. package/tests/cases/integration/removeField.test.ts +86 -66
  107. package/tests/cases/integration/toggleEventLog.test.ts +5 -5
  108. package/tests/cases/integration/toggleJunctionEventLog.test.ts +5 -5
  109. package/tests/cases/integration/updateColumnDefinition.test.ts +22 -18
  110. package/tests/cases/integration/updateEntityName.test.ts +67 -51
  111. package/tests/cases/integration/updateEntityOrderBy.test.ts +5 -5
  112. package/tests/cases/integration/updateEnum.test.ts +20 -16
  113. package/tests/cases/integration/updateFieldName.test.ts +126 -102
  114. package/tests/cases/integration/updateRelationOnDelete.test.ts +18 -14
  115. package/tests/cases/integration/updateRelationOrderBy.test.ts +23 -19
  116. package/tests/cases/integration/updateView.test.ts +9 -9
  117. package/tests/src/tests.ts +19 -29
  118. package/dist/src/modifications/differs/ChangeViewNonViewDiffer.d.ts +0 -6
  119. package/dist/src/modifications/differs/ChangeViewNonViewDiffer.d.ts.map +0 -1
  120. package/dist/src/modifications/differs/ChangeViewNonViewDiffer.js +0 -19
  121. package/dist/src/modifications/differs/ChangeViewNonViewDiffer.js.map +0 -1
  122. package/dist/src/modifications/differs/RemoveChangedViewDiffer.d.ts.map +0 -1
  123. package/dist/src/modifications/differs/RemoveChangedViewDiffer.js +0 -33
  124. package/dist/src/modifications/differs/RemoveChangedViewDiffer.js.map +0 -1
  125. package/src/modifications/differs/ChangeViewNonViewDiffer.ts +0 -17
@@ -4,20 +4,24 @@ import { Model } from '@contember/schema'
4
4
  import { SQL } from '../../src/tags'
5
5
 
6
6
  testMigrations('enable orphan removal', {
7
- originalSchema: new SchemaBuilder()
8
- .entity('Post', entity =>
9
- entity.column('name', c => c.type(Model.ColumnType.String)).oneHasOne('content', r => r.target('Content')),
10
- )
11
- .entity('Content', e => e.column('text', c => c.type(Model.ColumnType.String)))
12
- .buildSchema(),
13
- updatedSchema: new SchemaBuilder()
14
- .entity('Post', entity =>
15
- entity
16
- .column('name', c => c.type(Model.ColumnType.String))
17
- .oneHasOne('content', r => r.target('Content').removeOrphan()),
18
- )
19
- .entity('Content', e => e.column('text', c => c.type(Model.ColumnType.String)))
20
- .buildSchema(),
7
+ original: {
8
+ model: new SchemaBuilder()
9
+ .entity('Post', entity =>
10
+ entity.column('name', c => c.type(Model.ColumnType.String)).oneHasOne('content', r => r.target('Content')),
11
+ )
12
+ .entity('Content', e => e.column('text', c => c.type(Model.ColumnType.String)))
13
+ .buildSchema(),
14
+ },
15
+ updated: {
16
+ model: new SchemaBuilder()
17
+ .entity('Post', entity =>
18
+ entity
19
+ .column('name', c => c.type(Model.ColumnType.String))
20
+ .oneHasOne('content', r => r.target('Content').removeOrphan()),
21
+ )
22
+ .entity('Content', e => e.column('text', c => c.type(Model.ColumnType.String)))
23
+ .buildSchema(),
24
+ },
21
25
  diff: [
22
26
  {
23
27
  modification: 'enableOrphanRemoval',
@@ -4,12 +4,16 @@ import { Model } from '@contember/schema'
4
4
  import { SQL } from '../../src/tags'
5
5
 
6
6
  testMigrations('make column not null', {
7
- originalSchema: new SchemaBuilder()
8
- .entity('Author', e => e.column('name', c => c.type(Model.ColumnType.String)))
9
- .buildSchema(),
10
- updatedSchema: new SchemaBuilder()
11
- .entity('Author', e => e.column('name', c => c.type(Model.ColumnType.String).notNull()))
12
- .buildSchema(),
7
+ original: {
8
+ model: new SchemaBuilder()
9
+ .entity('Author', e => e.column('name', c => c.type(Model.ColumnType.String)))
10
+ .buildSchema(),
11
+ },
12
+ updated: {
13
+ model: new SchemaBuilder()
14
+ .entity('Author', e => e.column('name', c => c.type(Model.ColumnType.String).notNull()))
15
+ .buildSchema(),
16
+ },
13
17
  diff: [
14
18
  {
15
19
  modification: 'updateColumnDefinition',
@@ -4,20 +4,24 @@ import { Model } from '@contember/schema'
4
4
  import { SQL } from '../../src/tags'
5
5
 
6
6
  testMigrations('make relation not null', {
7
- originalSchema: new SchemaBuilder()
8
- .entity('Post', entity =>
9
- entity.column('name', c => c.type(Model.ColumnType.String)).manyHasOne('category', r => r.target('Category')),
10
- )
11
- .entity('Category', e => e.column('name', c => c.type(Model.ColumnType.String)))
12
- .buildSchema(),
13
- updatedSchema: new SchemaBuilder()
14
- .entity('Post', entity =>
15
- entity
16
- .column('name', c => c.type(Model.ColumnType.String))
17
- .manyHasOne('category', r => r.target('Category').notNull()),
18
- )
19
- .entity('Category', e => e.column('name', c => c.type(Model.ColumnType.String)))
20
- .buildSchema(),
7
+ original: {
8
+ model: new SchemaBuilder()
9
+ .entity('Post', entity =>
10
+ entity.column('name', c => c.type(Model.ColumnType.String)).manyHasOne('category', r => r.target('Category')),
11
+ )
12
+ .entity('Category', e => e.column('name', c => c.type(Model.ColumnType.String)))
13
+ .buildSchema(),
14
+ },
15
+ updated: {
16
+ model: new SchemaBuilder()
17
+ .entity('Post', entity =>
18
+ entity
19
+ .column('name', c => c.type(Model.ColumnType.String))
20
+ .manyHasOne('category', r => r.target('Category').notNull()),
21
+ )
22
+ .entity('Category', e => e.column('name', c => c.type(Model.ColumnType.String)))
23
+ .buildSchema(),
24
+ },
21
25
  diff: [
22
26
  {
23
27
  modification: 'makeRelationNotNull',
@@ -4,20 +4,24 @@ import { Model } from '@contember/schema'
4
4
  import { SQL } from '../../src/tags'
5
5
 
6
6
  testMigrations('make relation nullable', {
7
- originalSchema: new SchemaBuilder()
8
- .entity('Post', entity =>
9
- entity
10
- .column('name', c => c.type(Model.ColumnType.String))
11
- .manyHasOne('category', r => r.target('Category').notNull()),
12
- )
13
- .entity('Category', e => e.column('name', c => c.type(Model.ColumnType.String)))
14
- .buildSchema(),
15
- updatedSchema: new SchemaBuilder()
16
- .entity('Post', entity =>
17
- entity.column('name', c => c.type(Model.ColumnType.String)).manyHasOne('category', r => r.target('Category')),
18
- )
19
- .entity('Category', e => e.column('name', c => c.type(Model.ColumnType.String)))
20
- .buildSchema(),
7
+ original: {
8
+ model: new SchemaBuilder()
9
+ .entity('Post', entity =>
10
+ entity
11
+ .column('name', c => c.type(Model.ColumnType.String))
12
+ .manyHasOne('category', r => r.target('Category').notNull()),
13
+ )
14
+ .entity('Category', e => e.column('name', c => c.type(Model.ColumnType.String)))
15
+ .buildSchema(),
16
+ },
17
+ updated: {
18
+ model: new SchemaBuilder()
19
+ .entity('Post', entity =>
20
+ entity.column('name', c => c.type(Model.ColumnType.String)).manyHasOne('category', r => r.target('Category')),
21
+ )
22
+ .entity('Category', e => e.column('name', c => c.type(Model.ColumnType.String)))
23
+ .buildSchema(),
24
+ },
21
25
  diff: [
22
26
  {
23
27
  modification: 'makeRelationNullable',
@@ -30,14 +34,18 @@ testMigrations('make relation nullable', {
30
34
  })
31
35
 
32
36
  testMigrations('make inverse relation nullable', {
33
- originalSchema: new SchemaBuilder()
34
- .entity('Post', entity => entity.column('name', c => c.type(Model.ColumnType.String)))
35
- .entity('Link', e => e.oneHasOne('post', r => r.target('Post').inverseNotNull().inversedBy('link')))
36
- .buildSchema(),
37
- updatedSchema: new SchemaBuilder()
38
- .entity('Post', entity => entity.column('name', c => c.type(Model.ColumnType.String)))
39
- .entity('Link', e => e.oneHasOne('post', r => r.target('Post').inversedBy('link')))
40
- .buildSchema(),
37
+ original: {
38
+ model: new SchemaBuilder()
39
+ .entity('Post', entity => entity.column('name', c => c.type(Model.ColumnType.String)))
40
+ .entity('Link', e => e.oneHasOne('post', r => r.target('Post').inverseNotNull().inversedBy('link')))
41
+ .buildSchema(),
42
+ },
43
+ updated: {
44
+ model: new SchemaBuilder()
45
+ .entity('Post', entity => entity.column('name', c => c.type(Model.ColumnType.String)))
46
+ .entity('Link', e => e.oneHasOne('post', r => r.target('Post').inversedBy('link')))
47
+ .buildSchema(),
48
+ },
41
49
  diff: [
42
50
  {
43
51
  modification: 'makeRelationNullable',
@@ -4,23 +4,27 @@ import { Model } from '@contember/schema'
4
4
  import { SQL } from '../../src/tags'
5
5
 
6
6
  testMigrations('patch acl', {
7
- originalSchema: new SchemaBuilder()
8
- .entity('Site', entity => entity.column('name', c => c.type(Model.ColumnType.String)))
9
- .buildSchema(),
10
- updatedSchema: new SchemaBuilder()
11
- .entity('Site', entity => entity.column('name', c => c.type(Model.ColumnType.String)))
12
- .buildSchema(),
13
- updatedAcl: {
14
- roles: {
15
- admin: {
16
- variables: {},
17
- stages: '*',
18
- entities: {
19
- Site: {
20
- predicates: {},
21
- operations: {
22
- read: {
23
- id: true,
7
+ original: {
8
+ model: new SchemaBuilder()
9
+ .entity('Site', entity => entity.column('name', c => c.type(Model.ColumnType.String)))
10
+ .buildSchema(),
11
+ },
12
+ updated: {
13
+ model: new SchemaBuilder()
14
+ .entity('Site', entity => entity.column('name', c => c.type(Model.ColumnType.String)))
15
+ .buildSchema(),
16
+ acl: {
17
+ roles: {
18
+ admin: {
19
+ variables: {},
20
+ stages: '*',
21
+ entities: {
22
+ Site: {
23
+ predicates: {},
24
+ operations: {
25
+ read: {
26
+ id: true,
27
+ },
24
28
  },
25
29
  },
26
30
  },
@@ -1,21 +1,25 @@
1
1
  import { testMigrations } from '../../src/tests'
2
- import { SchemaBuilder } from '@contember/schema-definition'
2
+ import { createSchema, SchemaBuilder } from '@contember/schema-definition'
3
3
  import { Acl, Model } from '@contember/schema'
4
4
  import { SQL } from '../../src/tags'
5
5
  import { SchemaDefinition as def } from '@contember/schema-definition'
6
6
 
7
7
  testMigrations('remove an entity', {
8
- originalSchema: new SchemaBuilder()
9
- .entity('Author', e => e.column('name', c => c.type(Model.ColumnType.String)))
10
- .entity('Post', e =>
11
- e
12
- .column('title', c => c.type(Model.ColumnType.String))
13
- .manyHasOne('author', r => r.target('Author').onDelete(Model.OnDelete.cascade)),
14
- )
15
- .buildSchema(),
16
- updatedSchema: new SchemaBuilder()
17
- .entity('Post', e => e.column('title', c => c.type(Model.ColumnType.String)))
18
- .buildSchema(),
8
+ original: {
9
+ model: new SchemaBuilder()
10
+ .entity('Author', e => e.column('name', c => c.type(Model.ColumnType.String)))
11
+ .entity('Post', e =>
12
+ e
13
+ .column('title', c => c.type(Model.ColumnType.String))
14
+ .manyHasOne('author', r => r.target('Author').onDelete(Model.OnDelete.cascade)),
15
+ )
16
+ .buildSchema(),
17
+ },
18
+ updated: {
19
+ model: new SchemaBuilder()
20
+ .entity('Post', e => e.column('title', c => c.type(Model.ColumnType.String)))
21
+ .buildSchema(),
22
+ },
19
23
  diff: [
20
24
  {
21
25
  modification: 'removeEntity',
@@ -26,36 +30,38 @@ testMigrations('remove an entity', {
26
30
  })
27
31
 
28
32
  testMigrations('remove entity with acl', {
29
- originalSchema: new SchemaBuilder()
30
- .entity('Site', entity => entity.column('name', c => c.type(Model.ColumnType.String)))
31
- .entity('Post', entity => entity.column('title').manyHasOne('site', r => r.target('Site')))
32
- .buildSchema(),
33
- originalAcl: {
34
- roles: {
35
- admin: {
36
- variables: {
37
- siteId: {
38
- type: Acl.VariableType.entity,
39
- entityName: 'Site',
40
- },
41
- },
42
- stages: '*',
43
- entities: {
44
- Site: {
45
- predicates: {},
46
- operations: {
47
- read: {
48
- id: true,
49
- },
33
+ original: {
34
+ model: new SchemaBuilder()
35
+ .entity('Site', entity => entity.column('name', c => c.type(Model.ColumnType.String)))
36
+ .entity('Post', entity => entity.column('title').manyHasOne('site', r => r.target('Site')))
37
+ .buildSchema(),
38
+ acl: {
39
+ roles: {
40
+ admin: {
41
+ variables: {
42
+ siteId: {
43
+ type: Acl.VariableType.entity,
44
+ entityName: 'Site',
50
45
  },
51
46
  },
52
- Post: {
53
- predicates: {
54
- site: { site: { id: 'siteId' } },
47
+ stages: '*',
48
+ entities: {
49
+ Site: {
50
+ predicates: {},
51
+ operations: {
52
+ read: {
53
+ id: true,
54
+ },
55
+ },
55
56
  },
56
- operations: {
57
- read: {
58
- title: 'site',
57
+ Post: {
58
+ predicates: {
59
+ site: { site: { id: 'siteId' } },
60
+ },
61
+ operations: {
62
+ read: {
63
+ title: 'site',
64
+ },
59
65
  },
60
66
  },
61
67
  },
@@ -63,20 +69,22 @@ testMigrations('remove entity with acl', {
63
69
  },
64
70
  },
65
71
  },
66
- updatedSchema: new SchemaBuilder().entity('Post', entity => entity.column('title')).buildSchema(),
67
- updatedAcl: {
68
- roles: {
69
- admin: {
70
- variables: {},
71
- stages: '*',
72
- entities: {
73
- Post: {
74
- predicates: {
75
- site: {},
76
- },
77
- operations: {
78
- read: {
79
- title: 'site',
72
+ updated: {
73
+ model: new SchemaBuilder().entity('Post', entity => entity.column('title')).buildSchema(),
74
+ acl: {
75
+ roles: {
76
+ admin: {
77
+ variables: {},
78
+ stages: '*',
79
+ entities: {
80
+ Post: {
81
+ predicates: {
82
+ site: {},
83
+ },
84
+ operations: {
85
+ read: {
86
+ title: 'site',
87
+ },
80
88
  },
81
89
  },
82
90
  },
@@ -100,8 +108,8 @@ namespace ViewEntityOriginalSchema {
100
108
  }
101
109
  }
102
110
  testMigrations('remove a view', {
103
- originalSchema: def.createModel(ViewEntityOriginalSchema),
104
- updatedSchema: new SchemaBuilder().buildSchema(),
111
+ original: createSchema(ViewEntityOriginalSchema),
112
+ updated: {},
105
113
  diff: [
106
114
  {
107
115
  modification: 'removeEntity',
@@ -4,17 +4,21 @@ import { Model } from '@contember/schema'
4
4
  import { SQL } from '../../src/tags'
5
5
 
6
6
  testMigrations('remove enum', {
7
- originalSchema: new SchemaBuilder()
8
- .entity('Post', e =>
9
- e
10
- .column('title', c => c.type(Model.ColumnType.String))
11
- .column('status', c => c.type(Model.ColumnType.Enum, { enumName: 'postStatus' })),
12
- )
13
- .enum('postStatus', ['publish', 'draft'])
14
- .buildSchema(),
15
- updatedSchema: new SchemaBuilder()
16
- .entity('Post', e => e.column('title', c => c.type(Model.ColumnType.String)))
17
- .buildSchema(),
7
+ original: {
8
+ model: new SchemaBuilder()
9
+ .entity('Post', e =>
10
+ e
11
+ .column('title', c => c.type(Model.ColumnType.String))
12
+ .column('status', c => c.type(Model.ColumnType.Enum, { enumName: 'postStatus' })),
13
+ )
14
+ .enum('postStatus', ['publish', 'draft'])
15
+ .buildSchema(),
16
+ },
17
+ updated: {
18
+ model: new SchemaBuilder()
19
+ .entity('Post', e => e.column('title', c => c.type(Model.ColumnType.String)))
20
+ .buildSchema(),
21
+ },
18
22
  diff: [
19
23
  {
20
24
  modification: 'removeField',
@@ -1,23 +1,27 @@
1
1
  import { testMigrations } from '../../src/tests'
2
- import { SchemaBuilder } from '@contember/schema-definition'
2
+ import { createSchema, SchemaBuilder } from '@contember/schema-definition'
3
3
  import { Model } from '@contember/schema'
4
4
  import { SQL } from '../../src/tags'
5
5
  import { SchemaDefinition as def } from '@contember/schema-definition'
6
6
 
7
7
 
8
8
  testMigrations('remove relation (many has one)', {
9
- originalSchema: new SchemaBuilder()
10
- .entity('Author', e => e.column('name', c => c.type(Model.ColumnType.String)))
11
- .entity('Post', e =>
12
- e
13
- .column('title', c => c.type(Model.ColumnType.String))
14
- .manyHasOne('author', r => r.target('Author').onDelete(Model.OnDelete.cascade)),
15
- )
16
- .buildSchema(),
17
- updatedSchema: new SchemaBuilder()
18
- .entity('Author', e => e.column('name', c => c.type(Model.ColumnType.String)))
19
- .entity('Post', e => e.column('title', c => c.type(Model.ColumnType.String)))
20
- .buildSchema(),
9
+ original: {
10
+ model: new SchemaBuilder()
11
+ .entity('Author', e => e.column('name', c => c.type(Model.ColumnType.String)))
12
+ .entity('Post', e =>
13
+ e
14
+ .column('title', c => c.type(Model.ColumnType.String))
15
+ .manyHasOne('author', r => r.target('Author').onDelete(Model.OnDelete.cascade)),
16
+ )
17
+ .buildSchema(),
18
+ },
19
+ updated: {
20
+ model: new SchemaBuilder()
21
+ .entity('Author', e => e.column('name', c => c.type(Model.ColumnType.String)))
22
+ .entity('Post', e => e.column('title', c => c.type(Model.ColumnType.String)))
23
+ .buildSchema(),
24
+ },
21
25
  diff: [
22
26
  {
23
27
  modification: 'removeField',
@@ -30,21 +34,25 @@ testMigrations('remove relation (many has one)', {
30
34
  })
31
35
 
32
36
  testMigrations('remove relation (one has many)', {
33
- originalSchema: new SchemaBuilder()
34
- .entity('Post', e => e.oneHasMany('locales', r => r.target('PostLocale').ownerNotNull().ownedBy('post')))
35
- .entity('PostLocale', e =>
36
- e
37
- .unique(['post', 'locale'])
38
- .column('title', c => c.type(Model.ColumnType.String))
39
- .column('locale', c => c.type(Model.ColumnType.String)),
40
- )
41
- .buildSchema(),
42
- updatedSchema: new SchemaBuilder()
43
- .entity('Post', e => e)
44
- .entity('PostLocale', e =>
45
- e.column('title', c => c.type(Model.ColumnType.String)).column('locale', c => c.type(Model.ColumnType.String)),
46
- )
47
- .buildSchema(),
37
+ original: {
38
+ model: new SchemaBuilder()
39
+ .entity('Post', e => e.oneHasMany('locales', r => r.target('PostLocale').ownerNotNull().ownedBy('post')))
40
+ .entity('PostLocale', e =>
41
+ e
42
+ .unique(['post', 'locale'])
43
+ .column('title', c => c.type(Model.ColumnType.String))
44
+ .column('locale', c => c.type(Model.ColumnType.String)),
45
+ )
46
+ .buildSchema(),
47
+ },
48
+ updated: {
49
+ model: new SchemaBuilder()
50
+ .entity('Post', e => e)
51
+ .entity('PostLocale', e =>
52
+ e.column('title', c => c.type(Model.ColumnType.String)).column('locale', c => c.type(Model.ColumnType.String)),
53
+ )
54
+ .buildSchema(),
55
+ },
48
56
  diff: [
49
57
  {
50
58
  entityName: 'PostLocale',
@@ -62,16 +70,20 @@ testMigrations('remove relation (one has many)', {
62
70
  })
63
71
 
64
72
  testMigrations('remove relation (many has many)', {
65
- originalSchema: new SchemaBuilder()
66
- .entity('Post', e =>
67
- e.column('title', c => c.type(Model.ColumnType.String)).manyHasMany('categories', r => r.target('Category')),
68
- )
69
- .entity('Category', e => e.column('title', c => c.type(Model.ColumnType.String)))
70
- .buildSchema(),
71
- updatedSchema: new SchemaBuilder()
72
- .entity('Post', e => e.column('title', c => c.type(Model.ColumnType.String)))
73
- .entity('Category', e => e.column('title', c => c.type(Model.ColumnType.String)))
74
- .buildSchema(),
73
+ original: {
74
+ model: new SchemaBuilder()
75
+ .entity('Post', e =>
76
+ e.column('title', c => c.type(Model.ColumnType.String)).manyHasMany('categories', r => r.target('Category')),
77
+ )
78
+ .entity('Category', e => e.column('title', c => c.type(Model.ColumnType.String)))
79
+ .buildSchema(),
80
+ },
81
+ updated: {
82
+ model: new SchemaBuilder()
83
+ .entity('Post', e => e.column('title', c => c.type(Model.ColumnType.String)))
84
+ .entity('Category', e => e.column('title', c => c.type(Model.ColumnType.String)))
85
+ .buildSchema(),
86
+ },
75
87
  diff: [
76
88
  {
77
89
  modification: 'removeField',
@@ -83,18 +95,22 @@ testMigrations('remove relation (many has many)', {
83
95
  })
84
96
 
85
97
  testMigrations('remove relation (one has one)', {
86
- originalSchema: new SchemaBuilder()
87
- .entity('Site', entity =>
88
- entity
89
- .column('name', c => c.type(Model.ColumnType.String))
90
- .oneHasOne('setting', r => r.target('SiteSetting').inversedBy('site')),
91
- )
92
- .entity('SiteSetting', e => e.column('url', c => c.type(Model.ColumnType.String)))
93
- .buildSchema(),
94
- updatedSchema: new SchemaBuilder()
95
- .entity('Site', entity => entity.column('name', c => c.type(Model.ColumnType.String)))
96
- .entity('SiteSetting', e => e.column('url', c => c.type(Model.ColumnType.String)))
97
- .buildSchema(),
98
+ original: {
99
+ model: new SchemaBuilder()
100
+ .entity('Site', entity =>
101
+ entity
102
+ .column('name', c => c.type(Model.ColumnType.String))
103
+ .oneHasOne('setting', r => r.target('SiteSetting').inversedBy('site')),
104
+ )
105
+ .entity('SiteSetting', e => e.column('url', c => c.type(Model.ColumnType.String)))
106
+ .buildSchema(),
107
+ },
108
+ updated: {
109
+ model: new SchemaBuilder()
110
+ .entity('Site', entity => entity.column('name', c => c.type(Model.ColumnType.String)))
111
+ .entity('SiteSetting', e => e.column('url', c => c.type(Model.ColumnType.String)))
112
+ .buildSchema(),
113
+ },
98
114
  diff: [
99
115
  {
100
116
  modification: 'removeField',
@@ -106,20 +122,24 @@ testMigrations('remove relation (one has one)', {
106
122
  })
107
123
 
108
124
  testMigrations('remove relation inverse side', {
109
- originalSchema: new SchemaBuilder()
110
- .entity('Site', entity =>
111
- entity
112
- .column('name', c => c.type(Model.ColumnType.String))
113
- .oneHasOne('setting', r => r.target('SiteSetting').inversedBy('site')),
114
- )
115
- .entity('SiteSetting', e => e.column('url', c => c.type(Model.ColumnType.String)))
116
- .buildSchema(),
117
- updatedSchema: new SchemaBuilder()
118
- .entity('Site', entity =>
119
- entity.column('name', c => c.type(Model.ColumnType.String)).oneHasOne('setting', r => r.target('SiteSetting')),
120
- )
121
- .entity('SiteSetting', e => e.column('url', c => c.type(Model.ColumnType.String)))
122
- .buildSchema(),
125
+ original: {
126
+ model: new SchemaBuilder()
127
+ .entity('Site', entity =>
128
+ entity
129
+ .column('name', c => c.type(Model.ColumnType.String))
130
+ .oneHasOne('setting', r => r.target('SiteSetting').inversedBy('site')),
131
+ )
132
+ .entity('SiteSetting', e => e.column('url', c => c.type(Model.ColumnType.String)))
133
+ .buildSchema(),
134
+ },
135
+ updated: {
136
+ model: new SchemaBuilder()
137
+ .entity('Site', entity =>
138
+ entity.column('name', c => c.type(Model.ColumnType.String)).oneHasOne('setting', r => r.target('SiteSetting')),
139
+ )
140
+ .entity('SiteSetting', e => e.column('url', c => c.type(Model.ColumnType.String)))
141
+ .buildSchema(),
142
+ },
123
143
  diff: [
124
144
  {
125
145
  modification: 'removeField',
@@ -160,8 +180,8 @@ namespace DropIndexUpSchema {
160
180
 
161
181
 
162
182
  testMigrations('test drop index / unique when removing a field', {
163
- originalSchema: def.createModel(DropIndexOrigSchema),
164
- updatedSchema: def.createModel(DropIndexUpSchema),
183
+ original: createSchema(DropIndexOrigSchema),
184
+ updated: createSchema(DropIndexUpSchema),
165
185
  diff: [{
166
186
  modification: 'removeField',
167
187
  entityName: 'Article',
@@ -1,4 +1,4 @@
1
- import { SchemaDefinition as def } from '@contember/schema-definition'
1
+ import { createSchema, SchemaDefinition as def } from '@contember/schema-definition'
2
2
  import { testMigrations } from '../../src/tests'
3
3
  import { SQL } from '../../src/tags'
4
4
 
@@ -17,8 +17,8 @@ namespace EventLogDisabled {
17
17
 
18
18
 
19
19
  testMigrations('event log - disable', {
20
- originalSchema: def.createModel(EventLogNoConfig),
21
- updatedSchema: def.createModel(EventLogDisabled),
20
+ original: createSchema(EventLogNoConfig),
21
+ updated: createSchema(EventLogDisabled),
22
22
  diff: [
23
23
  {
24
24
  modification: 'toggleEventLog',
@@ -31,8 +31,8 @@ testMigrations('event log - disable', {
31
31
  })
32
32
 
33
33
  testMigrations('event log - enable', {
34
- originalSchema: def.createModel(EventLogDisabled),
35
- updatedSchema: def.createModel(EventLogNoConfig),
34
+ original: createSchema(EventLogDisabled),
35
+ updated: createSchema(EventLogNoConfig),
36
36
  diff: [
37
37
  {
38
38
  modification: 'toggleEventLog',